シェルで位置パラメータのセット

シェルで変数に値をセットする場合は 次のようにします。

$ var1=KAME

$ echo $var1
KAME

コマンドの実行結果をセットする場合は 次のようにします。

$ var2=`echo KAME to USAGI`

$ echo $var2
KAME to USAGI

この例では、$var2 に "KAME to USAGI" とセットされてしまいますが 別々の変数にセットしたい場合があります。

そんなときには、set コマンドを使用します。

set コマンドは、次の例のように 引数を $n の位置パラメータにセットすることができます。

$ set KANI SARU KAKI

$ echo $1
KANI
$ echo $2
SARU
$ echo $3
KAKI

コマンドの結果をセットするには 次のように書きます。

$ set `echo KAME to USAGI`

$ echo $1
KAME
$ echo $2
to
$ echo $3
USAGI

コマンドと定数を混ぜて書くこともできます。

$ set KURI `echo KANI KAKI` ONIGIRI

$ echo $1,$2,$3,$4
KURI,KANI,KAKI,ONIGIRI

値の中に set のオプションとして理解されそうなものが ある場合は、"--" オプションを指定します。 "--" オプション以降は全て引数と判定されます。

$ set -- -x

$ echo $1
-x

位置パラメータをクリアするには、 "--" オプションだけを指定します。

$ set --

Google サイト内検索

Amazonアソシエイト