bashの特殊パラメータ
$0
とか。
成果物
特殊パラメータ
表記 | 意味 |
---|---|
$n |
指定した位置パラメータ。n は1から始まる数。 |
$@ |
(1 から始まる) 全ての位置パラメータ。ダブルクォート内で展開されると別々の単語に展開される("$@" は"$1" "$2" ... と同じ) |
$# |
位置パラメータの個数。 |
$? |
最後に実行されたフォアグラウンドのパイプラインの 終了ステータス。 |
$- |
現在のオプションフラグ。 |
$$ |
シェルのプロセス ID。 |
$! |
最後に実行されたバックグラウンド (非同期) コマンドの プロセス ID。 |
$0 |
シェルまたはシェルスクリプトの名前。 |
$_ |
シェルの起動時: 実行するシェルまたはシェルスクリプトの絶対パス名 以降: 直前のコマンドに対する最後の引数。 |
特殊パラメータは参照のみ可で代入不可。
例
Here() { echo "$0"; } Filename() { echo "$(basename "$0")"; } DirPath() { echo $(cd $(dirname "$0"); pwd); } FullPath() { echo "$(cd $(dirname "$0"); pwd)/$(Filename)"; } ShowParams() { echo "ParamNum: $#" echo "Params: '$*'" local count=1 for p in $@; do echo "$count: $p"; ((count++)); done; } Result() { [[ 1 -eq 1 ]] && echo "True: $?" || echo "False: $?" [[ 1 -ne 1 ]] && echo "True: $?" || echo "False: $?" } Run() { echo "$_" # bash実行時のフラグ echo "$-" echo "$BASHPID" # シェルのPID echo "$$" # 直前に実行したバックグラウンドコマンドのPID echo "$!" Here Filename DirPath FullPath ShowParams A B C Result echo "$_" } Run
/tmp/work/repos/Shell.Study.20190406091150/src/05_special_parameter.sh hB 9892 9892 /tmp/work/repos/Shell.Study.20190406091150/src/05_special_parameter.sh 05_special_parameter.sh /tmp/work/repos/Shell.Study.20190406091150/src /tmp/work/repos/Shell.Study.20190406091150/src/05_special_parameter.sh ParamNum: 3 Params: 'A B C' 1: A 2: B 3: C True: 0 False: 1 Result
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12
$ uname -a Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux