私は今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
。