パラメータ
公開日:
更新日:
位置パラメータ
$1
, $2
, $3
, …
シェルスクリプトやシェル関数の引数を参照する.
- paramtest
#!/bin/sh echo "$1" echo "$2" echo "$3"
- 位置パラメータの表示テスト
$ ./paramtest one two three one two three
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
特殊パラメータ
$0
起動されたシェルスクリプト名(第0引数)を参照する.
echo "$0" # シェルスクリプト名(第0引数)を表示する
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$@
シェルスクリプトやシャル関数の引数をそのまま引き継ぐ.
mycommand "$@" # 引数すべてをそのまま引き継いでmycommandを起動
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$*
シェルスクリプトやシェル関数の引数すべてを1つに連結して参照する.
echo "$*" # すべての引数を1つに連結して表示する
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$#
シャルスクリプトやシェル関数の引数の個数を参照する.
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$?
直前のリストの終了ステータスを参照する.
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$!
もっとも新しくバックグラウンドで起動したコマンドのプロセスIDを参照する.
sleep 10 & # 適当なコマンドをバックグラウンドで起動 echo $! # そのコマンドのプロセスIDを表示する
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$$
シェル自身のプロセスIDを参照する.
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$-
現在のシェルに設定されているオプションフラグを参照する.
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ✔ |
BusyBox (sh) | ✔ |
$_
直前に実行したコマンドの最後の引数を参照する.
ls -l /some/dir cd $_ # /some/dirディレクトリに移動
Linux (bash) | ✔ |
FreeBSD (sh) | ✔ |
Solaris (sh) | ❌ |
BusyBox (sh) | ✔ |
Internal Variables[2]
PPID
参考文献
- ^ a b 山森丈範. [改訂第3版]シェルスクリプト基本リファレンス. 2017
- ^ "9.1. Internal Variables". Advanced Bash-Scripting Guide. accessed 2020-5-20
- ^ "親プロセスが終了するとそのプロセスから呼ばれた子プロセスも停止する?". ZDNet. accessed 2020-5-20
- ^ "Init". Wikipedia. accessed 2020-05-20