【shell】位置パラメータ(positional parameters)の使い方まとめ($*, $@, $1)
やること
shellの位置パラメータ($*, $@, $1...)についてまとめる
位置パラメータとは
シェルスクリプト実行時に渡された引数を設定(展開)するパラメータ
位置パラメータの使い方の例
$1, $2...
$1のように$の後ろに数字をつけると、n番目の引数を表します。
$ cat test.sh
#!/bin/sh
echo "\$1の値は、$1"
echo "\$2の値は、$2"
$ sh test.sh lulu 222
$1の値は、lulu
$2の値は、222
$@
$の後ろに@マーク(アットマーク)をつけると、すべての引数を展開します。
$ cat test.sh
#!/bin/sh
echo $@
$ sh test.sh 11 22 33 44
11 22 33 44
$*
$の後ろに*マークをつけると、すべての引数を展開します。
$ cat test.sh
#!/bin/sh
echo $*
$ sh test.sh 11 22 33 44
11 22 33 44
$@と$*の違い
$@と$*で同じ挙動をしましたが、内部的には以下の違いがあります。
- $@は引数を別々の文字列として展開
- ↑の例では、"11" "22" "33" "44"として展開される
- $*は一つの文字列として展開される
- ↑の例では "11 22 33 44"として展開される