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行の最初の「単語」以降のすべてを処理します。単一パラメータとして。 1つの回避策はset -o
スクリプトの後半にあります。
#!/bin/bash
set -o pipefail
echo "Running test"
git diff HEAD^ HEAD -M --summary | grep delete | cut --delimiter=' ' -f 5