Bash

腳本中的 shebang ‘#!/bin/bash -o pipefail’ 出現無效的選項名稱錯誤

  • August 25, 2020

我有一個名為 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. 感謝任何幫助,如果我能提供更多資訊,請聯繫我!

Linux 核心將 shebang 行中第一個“單詞”之後的所有內容視為單個參數。一種解決方案是set -o稍後在腳本中:

#!/bin/bash

set -o pipefail

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

引用自:https://unix.stackexchange.com/questions/533415