web-dev-qa-db-ja.com

$は何ですか? $ 0 $ 1 $ 2はシェルスクリプトではどういう意味ですか?

私はよくシェルスクリプトで$? $0 $1 $2 etc....に出会います、私が知っていることは$?は最後のコマンドの終了ステータスを返すということです

echo "this will return 0"
echo $?

しかし、他の人は何をしますか?彼らは何と呼ばれ、それ以上はありますか?おそらく$ 3 $ 4 $ 5のように...

63
Lin

これらはスクリプトの位置引数です。

実行中

./script.sh Hello World

作る予定です

$0 = ./script.sh
$1 = Hello
$2 = World

./script.shを実行すると、$0./script.shを出力しますが、bash script.shを指定して実行すると出力はscript.shを出力します。

135
Grzegorz Żur

それらは 位置パラメータ と呼ばれます。

3.4.1位置パラメータ

位置パラメータは、1桁の0以外の1桁以上の数字で表されるパラメータです。位置パラメータは、起動時にシェルの引数から割り当てられ、set組み込みコマンドを使用して再割り当てできます。位置パラメータNは、$ {N}として参照することも、Nが1桁の数字で構成される場合は$ Nとして参照することもできます。位置パラメータは代入文で代入することはできません。 setおよびshift組み込みコマンドは、それらを設定および設定解除するために使用されます(シェル組み込みコマンドを参照)。シェル関数が実行されると、位置パラメータは一時的に置き換えられます(シェル関数を参照)。

複数桁からなる定位置パラメーターを展開する場合は、中括弧で囲む必要があります。

25
Etan Reisner