シェルスクリプト:組み込み変数のメモ

コードは Mac のシェル(zsh)から実行しています。

$?: 直前に実行されたコマンドの終了コード

% date
2023年 12月16日 土曜日 15時36分19秒 JST
% echo $?
0

$$: 現在のシェルプロセスのプロセスID

% ps
68374 ttys001    0:00.05 /bin/zsh -il
96238 ttys002    0:00.06 -zsh
% echo $$
96238

$0: 現在のスクリプトの名前

: 現在のスクリプトの名前

% echo $0
-zsh

, , …, $n: スクリプトや関数に渡された引数の値

echo $1
echo $2
echo $3
% ./test.sh a bc def ghij
a
bc
def

$#: 渡された引数の数

echo $#
% ./test.sh a bc def ghij
4

$@: 全ての引数をクォートした状態で取得

echo $@
% ./test.sh a bc def ghij
a bc def ghij

クォートされているらしいんですが、表示させる方法が思いつかない。
なので、$* と見た目の結果ですね。。

$*: 全ての引数をクォートせずに取得

echo $*
% ./test.sh a bc def ghij
a bc def ghij

$!: 直前にバックグラウンドで実行されたプロセスのPID

% sleep 3 & echo $!
[1] 96786
96786
シェルスクリプト基本リファレンス (Amazon)

コメント