脚本中的 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

相关内容