シェルスクリプトでのコマンドライン引数の受け取り方
はじめに
新しいLinuxの教科書を読んだので備忘録
コマンドライン引数の受け取り方
$1
などの変数に格納される
$#
で引数の数も出力できるので、必要な引数の数を指定したいときなどに利用する。
例えば以下のようにシェルスクリプトを記述する。
./parameters.sh #!/bin/bash echo "\$0 = $0" echo "\$1 = $1" echo "\$2 = $2" echo "\$3 = $3" echo "\$# = $#"
そして以下のようにしてコマンドライン引数を指定すると指定した引数が受け取れる。
$ ./parameters.sh aaa bbb ccc $0 = ./parameters.sh $1 = aaa $2 = bbb $3 = ccc $# = 3
$@
で受けとったすべてのコマンドライン引数を出力できる(ダブルクォートで囲むとそれぞれのコマンドライン引数がダブルクォートで囲まれる)
$*
で同じようにすべての位置パラメータを取得できるがこちらはダブルクォートで囲むとすべての引数が一つの文字列としてダブルクォートで囲まれるので、なにかのファイルにそのまま引数で渡したいときなどは $@
を使うことが多い。
$0
で実行時のシェルスクリプト名が出力できる