5

次のようにオプションの引数を期待するbashscriptがあります。最初の引数をさまざまな方法で渡すことができるように改良したいことがいくつかあります(0、false値を示すにはfalse、示すには他のすべての文字列) true、デフォルトは false)、これをスクリプト化するエレガントな方法は何ですか? 正しいブール式で if ステートメントを使用したいと思います。

if [ -n "$1" ]; それから
    update_httpconf="$1";
フィ
if [ "$update_httpconf" = "true" ]; それから
    「こんにちは」をエコーし​​ます。
フィ
4

2 に答える 2

3

最初の引数--update-httpconfを true としてカウントし、それ以外を false としてカウントするようにすると、他の unixey コマンド ライン ユーティリティとの一貫性が高まります。

これは良い出発点かもしれません:

while [ $# -gt 0 ]
do
    case $1 in
        '--update-httpconf')
            update_httpconf=true
            ;;
        *)
            echo "unrecognised arg $1"; exit
            ;;
    esac
    shift
done
于 2013-01-10T22:18:46.887 に答える
0

case次のステートメントを使用します。

case "$1" in
  0|false|FALSE) do_something;;
  *) do_something_else;;
esac
于 2013-01-10T22:15:11.720 に答える