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