.
source
나는 (또는 동등한 ) 내장 함수 의 동작 차이를 확인하려고 노력합니다 . 저는 El Capitan에서 bash 3.2를 사용하고 있습니다. ~에 따르면문서POSIX 모드( )를 설정하면 .txt 가 포함되지 않은 파일 이름을 발행할 때 set -o posix
쉘이 현재 디렉토리에서 검색하는 것을 방지해야 합니다 ..
/
나는 myscript.sh("Hello"를 에코함)와 동일한 tmp 디렉토리에 있습니다.
MacBook:tmp simone$ set | grep SHELLOPTS
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
MacBook:tmp simone$ . myscript.sh
Hello
MacBook:tmp simone$ set -o posix
MacBook:tmp simone$ set | grep SHELLOPTS
SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor:posix
MacBook:tmp simone$ . myscript.sh
Hello
현재 디렉토리의 스크립트는 POSIX 설정과 독립적으로 실행되는 것으로 보입니다. 제가 뭔가 잘못 이해한 걸까요, 아니면 좀 더 미묘한 설명이 있는 걸까요?
주석에서 지적했듯이 .
PATH에 없으면 동작은 설명된 대로 되어야 합니다. 내 PATH 변수에 다음 문자열이 포함되어 있습니다.
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
답변1
이는 버그였으며 후속 릴리스에서 수정되었습니다. ~에서배쉬 변경 로그:
이 문서에서는 bash-4.0-alpha 버전과 이전 버전인 bash-3.2-release 간의 변경 사항을 자세히 설명합니다. (…)
1. Bash의 변경 사항(...)
ggg. Posix 모드에서 실행 중인 셸이 / 인수
$PWD
로 지정된source
파일을 찾을 수 없는 경우 이를 검색하게 만드는 버그를 수정했습니다. (…).
$PATH
$PATH
3. /parameters가 포함되어 있음에도 불구하고 쉘이 이를 검색하게 만드는 버그를 수정했습니다 .source
.
/