初心者のWEBデザイン

HTML,CSS、その他WEBデザインに関する事を記述していきます。

Shell Script 位置パラメータ・特殊パラメータ

位置パラメータ

シェルスクリプトを実行した時の引数を参照するための変数のこと

位置パラメータは$+引数のindexで参照できます。
また10以上の位置パラメータは${10}とカールブラケットで囲う必要があります。

#!/bin/bash

echo $0
echo arg1:$1
echo arg2:$2
echo arg3:$3
echo $*
echo $@

実行結果

$ ./animal.sh cat dog bird

./animal.sh
arg1:cat
arg2:dog
arg3:bird
$@:cat dog bird
$*:cat dog bird

$*・$@:位置パラメータの先頭から末尾まで並べた文字列を展開
違いは上の例を用いるとなる。基本は$@を使用するべき。
$@:"cat" "dog" "bird" それぞれ個別の文字列として扱われる。
$*:"cat dog bird" 環境変数【IFS】の最初の文字が適用される為、スペースで連結した1つの文字列として扱われる。

特殊パラメータ
$ ./animal.sh cat dog bird

echo 位置パラメータの個数:$#
echo 直前に実行したコマンドの終了ステータス:$?
echo 現在のプロセスのプロセスID:$$
echo 最後に実行したバックグラウンドコマンドのプロセスID:$!

実行結果

位置パラメータの個数:3
直前に実行したコマンドの終了ステータス:0
現在のプロセスのプロセスID:89711
最後に実行したバックグラウンドコマンドのプロセスID: