우리 팀은 쉘 스크립트를 공유하고 있으며 Windows에서 나만 사용하기 때문에 이를 Cygwin과 호환되게 만들고 싶습니다. 이제 문제는 에서 발생합니다 source
. 내 쉘은 다음 형식만 허용합니다.
source ./<file name>
바꾸다
source <file name>
이것은 이미 스크립트에 있습니다. 그래서 나는 source
다음과 같이 다시 쓰고 싶다 .
source(){ . ./$@; }
하지만 이제 내 쉘이 불평합니다.
`source': is a special builtin
이제 어떻게 해야 할까요?
답변1
특수 내장 기능에 대한 오류 메시지에서(참조http://sources.debian.net/src/bash/4.4-4/execute_cmd.c/?hl=5623#L5623), POSIX 모드에서 bash를 실행 중인 것으로 보입니다. 이는 $POSIXLY_CORRECT
셸을 설정하고 실행했기 때문일 수 있습니다 .--posix
set -o posix
POSIX 모드가 수행하는 많은 작업 중 하나는 (재정의를 허용하지 않는 것 외에 ) source
-lookup이 실패할 경우 현재 작업 디렉터리를 검색하지 않는 것입니다 source
..
$PATH
이것은 Cygwin에서 실행하는 것과 아무 관련이 없습니다.