English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Shellスクリプトを実行する際に、スクリプトに引数を渡すことができます。スクリプト内で引数を取得する形式は以下の通りです:$n。n 数字を表します。1 実行するスクリプトの第1引数として、2 実行するスクリプトの第2引数として、これは続きと同じです……
以下の例では、スクリプトに3つの引数を渡し、それぞれ出力します。その中で $0 実行するファイル名(ファイルパスを含む):
#!/bin/bash # author:基本教程 # url:ja.oldtoolbag.com echo "Shell 引数の渡し方サンプル!"; echo "実行するファイル名:$0"; echo "最初の引数:$"1"; echo "第2引数は:$"2"; echo "第3引数は:$"3";
スクリプトに実行権を設定し、スクリプトを実行し、以下の結果を出力します:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 引数の渡し方サンプル! 実行するファイル名:./test.sh 最初の引数:1 第2引数は:2 第3引数は:3
また、パラメータを処理するためのいくつかの特殊文字があります:
パラメータ処理 | 説明 |
---|---|
$# | スクリプトに渡された引数の数 |
$* | すべてのスクリプトに渡された引数を一つの文字列で表示します。 「$"*「」で括られた場合、"$"1 $2 すべての引数を「… $n」の形式で出力します。 |
$$ | スクリプトが実行している現在のプロセスID番号 |
$! | バックグラウンドで動作している最後のプロセスのID番号 |
$@ | 与$*同じですが、使用時に引数を追加し、各引数を引数内で返します。 「"」で括られた場合、"$@"と同じですが、使用時に引数を追加し、各引数を引数内で返します。1" "$2" … "$n" の形式ですべての引数を出力します。 |
$- | Shellが使用する現在のオプションを表示し、setコマンド機能が同じです。 |
$? | 最後のコマンドの終了ステータスを表示します。0はエラーが無いことを示し、他の値はエラーを示します。 |
#!/bin/bash # author:基本教程 # url:ja.oldtoolbag.com echo "Shell 引数の渡し方サンプル!"; echo "最初の引数:$"1"; echo "引数の数:$#"; echo "渡された引数を文字列として表示します:$"*";
スクリプトを実行し、以下の結果を出力します:
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 引数の渡し方サンプル! 最初の引数:1 引数の数:3 渡された引数を文字列として表示します:1 2 3
$* 与 $@ 区別:
同じ点:すべての引数を参照します。
違い:ダブルクォート内で現れます。スクリプトの実行時に3つの引数が書かれた場合、 1、2、3、 * " に等価です。1 2 3"(1つの引数が渡されました),"@" は "1" "2" "3"(3つの引数が渡されました)。
#!/bin/bash # author:基本教程 # url:ja.oldtoolbag.com echo "-- \$* デモ ---" for i in "$"*"; do echo $i 完了 echo "-- \$@ デモ ---" for i in "$@"; do echo $i 完了
スクリプトを実行し、以下の結果を出力します:
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* デモ --- 1 2 3 -- $@ デモ --- 1 2 3