Bash Manual은 다음과 같이 말합니다 (맨 페이지, 강조).
Bash가 외부 명령을 호출하면 변수
$_
가 명령 의 전체 경로 이름으로 설정 되고 해당 환경에서 해당 명령으로 전달됩니다.
그리고 ( 특수 매개 변수 ) :
_
(
$_
, 밑줄) 쉘 시작시 환경 또는 인수 목록에 전달 된대로 실행중인 쉘 또는 쉘 스크립트를 호출하는 데 사용되는 절대 경로 이름으로 설정하십시오. 결과적으로 확장 후 이전 명령의 마지막 인수로 확장됩니다. 또한 실행되어 해당 명령으로 내 보낸 환경에 배치 된 각 명령을 호출하는 데 사용되는 전체 경로 이름으로 설정하십시오. 메일을 확인할 때이 매개 변수는 메일 파일의 이름을 보유합니다.
bash 쉘에서 다음을 실행합니다.
$ bash $ export | grep '_='
매뉴얼에 따르면
_
, 새로운 bash 쉘의 환경 변수 여야합니다.export
새로운 bash 쉘의 모든 환경 변수를 출력해야하지만 출력하지는 않습니다_
. 그래서_
새로운 bash 쉘의 환경 변수 인지 궁금합니다 .실제로 모든 bash 쉘에서 동일한 일이 발생합니다.
$ export | grep '_='
아무것도 출력하지 않습니다.
_
bash 쉘의 환경 변수가 있는지 궁금합니다 .비교하려고:
$ dash $ export | grep '_=' export _='/bin/dash'
내 게시물은 Mike의 의견 과 Stephane의 답변 에서 영감을 얻었습니다 .
bash -c export | grep _=
(배쉬에서) 할 부모 쉘이 호출하는 방법을 보여 bash
비록, 명령은 $_
부모에 해제합니다.
export
는 기본 제공이지만을 사용 하는 경우이 시스템printenv _
에서 호출 방법을 보여줍니다/usr/bin/printenv
.