こんにちは、今日はUNIX系OSのシェルであるbashで使用できる特殊パラメータについてまとめていきます。
Table of Contents
特殊パラメータ一覧
パラメータ名 | 説明 |
* | 引数の値を全てセパレーター区切りで表示します。 2重引用符で囲むと(”$*”)変数IFSに値が設定されている場合、その最初の文字がセパレーターとして使用され、nullの場合は全ての引数が連結されて表示されます。 変数IFSが設定されていない場合はスペース区切りで表示されます。 |
@ | 引数の値を全て表示します。 |
# | 引数の個数を表示します。 |
? | 最後に実行したフォアグラウンドコマンドのステータス |
– | bashのオプションで有効なフラグを表示します。 |
$ | シェルのプロセスIDを表示します。 |
! | 最後に実行したバックグラウンドコマンドのステータス |
0 | 実行中のシェル名、またはファイル名を表示します。 シェルスクリプトの場合はそのファイル名、コマンドラインで実行した場合は実行中のシェル名が表示されます。 |
_ | 最後に実行したコマンドの最後の引数。 |
$*
そのまま使用する場合
以下のようなシェルスクリプトをtest.shというファイル名で作成
#!/bin/bash
echo $*
実行結果は以下のようになります。
$ ./test.sh 1 2
1 2
特殊変数IFSにセパレーターを設定する
以下のようなシェルスクリプトをtest.shというファイル名で作成
#!/bin/bash
IFS=/
echo "$*"
実行結果は以下のようになります。
$ ./test.sh 1 2
1/2
特殊変数IFSにnullを設定する
以下のようなシェルスクリプトをtest.shというファイル名で作成
#!/bin/bash
IFS=
echo "$*"
実行結果は以下のようになります。
$ ./test.sh 1 2
1 2
$0
コマンドラインで実行した場合
$ echo $0
-bash
シェルスクリプトで使用した場合
#!/bin/bash
echo $0
実行結果
$ ./test.sh
./test.sh
$_
#!/bin/bash
mkdir test_dir
echo $_
実行結果
$ ./test.sh
test_dir