BashのManページをみると、
コマンドを記述したファイルを指定して bash を起動した場合、 $0 にはそのファイルの名前が設定されます。
(中略)
引き数がなければ、 bash を起動するときに使用した名前が引き数 0 として与えられ $0 に設定されます。
と記載があります。
試しにpstree -p
コマンドを、対話シェルから実行した場合とスクリプトから実行した場合を比較してみると、pstree -p
を呼び出したすぐ上位の親が違うことが分かるかと思います。
pstree -p
の親と、echo $0
した時の親と比較してみて下さい。
参考までに、下記のような感じです。
※表示抜粋してます
1. 対話シェルからpstree -p
を実行
init(1)-sshd(2454)-sshd(30556)-sshd(30586)-bash(30587)-pstree(369)
↑「$0」
2. スクリプト(pstest.sh)からpstree -p
を実行
init(1)-sshd(2454)-sshd(30556)-sshd(30586)-bash(30587)-pstest.sh(30793)-pstree(30794)
↑「$0」
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/11 16:08