【Linux】 パラメータ取り込み ( shift ) サンプルシェルスクリプト2009年02月01日 08:56


メモ : 物忘れがひどく?なった私の覚書です。

シェルスクリプトに渡されるパラメータの取得方法(変数)は、

  引数1 = $1
  引数2 = $2
  引数3 = $3
     :

と '$' に続く数字がカウントアップされた変数に入っている。

でも、何個パラメータが指定されるか分からないような場合
shift を使用して指定されたパラメータをシフトして
パラメータを順次取り込むことが出来る。

以下に簡単な例を

#!/bin/bash

TEST_FLAG=0
while [ ! -z "$1"  ]; do
    case $1 in
        -a)
            TEST_FLAG=1
            ;;
        -b)
            TEST_FLAG=2
            ;;
        *)
            param=$1
            ;;
    esac

    shift;

done

echo ${TEST_FLAG} : ${param}

このシェルをいろんなパターンで起動してみると

# /bin/bash /tmp/test.sh
0 :
# /bin/bash /tmp/test.sh -a
1 :
# /bin/bash /tmp/test.sh -a 123
1 : 123
# /bin/bash /tmp/test.sh -b 123
2 : 123
# /bin/bash /tmp/test.sh 123
0 : 123
# /bin/bash /tmp/test.sh -c
0 : -c
# /bin/bash /tmp/test.sh -a -b 123
2 : 123
# /bin/bash /tmp/test.sh -b -a 123
1 : 123


うん、shift を使えばパラメータ個数、パラメータ指定の順番など任意指定の
対応が簡単に出来そう (^-^)




コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://inari.asablo.jp/blog/2009/02/01/4136356/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。