我有一个名为 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