스크립트의 shebang "#!/bin/bash -o Pipelinefail"에 잘못된 옵션 이름 오류가 발생했습니다.

스크립트의 shebang "#!/bin/bash -o Pipelinefail"에 잘못된 옵션 이름 오류가 발생했습니다.

test.sh라는 파일이 있습니다.

#!/bin/bash -o pipefail
echo "Running test"
git diff HEAD^ HEAD -M --summary |
grep delete | 
cut --delimiter=' ' -f 5

이 스크립트를 실행하려고 하면:

./test.sh

나는 얻다:

/bin/bash: line 0: /bin/bash: ./test: invalid option name

cat -v test.sh캐리지 리턴 같은 게 있는지 달려가봤는데 , 없는 것 같았어요. 그냥 으로 실행하면 스크립트를 실행할 수 있습니다 bash test.sh. 도움을 주셔서 감사합니다. 추가 정보를 제공할 수 있으면 알려주시기 바랍니다.

답변1

Linux 커널은 shebang 줄의 첫 번째 "단어" 이후의 모든 것을 처리합니다.단일 매개변수로. 한 가지 해결 방법은 set -o스크립트 뒷부분에 나와 있습니다.

#!/bin/bash

set -o pipefail

echo "Running test"
git diff HEAD^ HEAD -M --summary | grep delete | cut --delimiter=' ' -f 5

관련 정보