/bin/sh スクリプト - パラメータが 1 か 2 であるかを確認するには?

/bin/sh スクリプト - パラメータが 1 か 2 であるかを確認するには?

修正が必要なスクリプトを受け取りました。中古なのに/bin/shおそらく変わらないと思います。

パラメータが整数(特に1または2)であることを確認したいと思います。

これを行い、パラメータが存在しない場合、または文字列で無効な整数である場合を満たすにはどうすればよいですか?

ベストアンサー1

スクリプトのパラメータがあるか1どうかを確認するには、2単にケースステートメントを使用するだけです。

以下のコードでは、次のことを確認したいとします$1

case $1 in
    [12])
        # $1 is 1 or 2
        ;;
    *)
        # $1 is not 1 and not 2
esac

2つの特定の値にのみ興味があり、それを文字列として簡単に確認できるため、パラメータが有効な整数であることを確認する必要はありません。シェル変数の値は、算術コンテキストで使用されていない限り、常に文字列であり、これには理由はありません。

明示的な宣言を使用することもできますif

if [ "$1" = '1' ] || [ "$1" = '2' ]; then
    # $1 is 1 or 2
else
    # $1 is not 1 and not 2
fi

おすすめ記事