fir*_*ant 9 shell bash shell-script shebang
我有一个名为 test.sh 的文件:
#!/bin/bash -o pipefail
echo "Running test"
git diff HEAD^ HEAD -M --summary |
grep delete |
cut --delimiter=' ' -f 5
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此脚本时:
./test.sh
Run Code Online (Sandbox Code Playgroud)
我得到:
/bin/bash: line 0: /bin/bash: ./test: invalid option name
Run Code Online (Sandbox Code Playgroud)
我跑去cat -v test.sh查看有没有回车什么的,但是好像没有。如果我只是将其作为 运行,我就可以运行该脚本bash test.sh。感谢您的帮助,如果我能提供更多信息,请告诉我!
Linux 内核将 shebang 行中第一个 \xe2\x80\x9cword\xe2\x80\x9d 之后的所有内容视为单个参数。一种解决方案是set -o稍后在脚本中:
#!/bin/bash\n\nset -o pipefail\n\necho "Running test"\ngit diff HEAD^ HEAD -M --summary | grep delete | cut --delimiter=\' \' -f 5\nRun Code Online (Sandbox Code Playgroud)\n