
우리 팀은 셸 스크립트를 공유합니다. 나만 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에서 실행하는 것과 아무 관련이 없습니다.