スクリプトの最初の引数が-eまたは-dであることを確認してください。

スクリプトの最初の引数が-eまたは-dであることを確認してください。

私は今bashシェルスクリプトを書いていますが、仕様の1つは、最初の引数$ 1が-eまたは-dでない場合はエラーメッセージを印刷する必要があることです。これが私がしたことです。

if [ "$1" != "-e" ] || [ "$1" != "-d" ]; then
        echo "Error: First argument must be either -e or -d"
        exit 1
fi

ただし、-eまたは-dを最初の引数として使用しても、このエラーメッセージは引き続き印刷されるため、これは機能しないようです。私は何が間違っていて、どのように解決できますか?

ベストアンサー1

その場合、最初の条件はtrueです$1-dその場合、2番目の条件はtrueです$1-eどちらも本当です。合流してから||または)、これそれからもしどちらかが本当なら受け入れなさい。したがって、それから支店は常に占有されています。

if [ "$1" != "-e" ] && [ "$1" != "-d" ]使用する必要がありますそれから$1そうでない場合にのみ分岐-e そしていいえ-d

おすすめ記事