echo $0
bash REPLで実行するとbash実行可能ファイルの名前のみが返されますが、zshで実行するとzsh実行可能ファイルへの絶対パスが返されるのはなぜですか?
バッシュから:
Davids-MacBook-Pro:~ david$ echo $0
-bash
zshから:
in ~
echo $0
/usr/local/bin/zsh
答え1
取得する内容は、$0
シェルの呼び出し方法によって異なります。最初から始めればbash
それだbash
。最初から始めれば/bin/bash
それだ/bin/bash
。同じ上記とzsh
。
$ bash
$ echo $0
bash
$ exit
exit
$ /bin/bash
$ echo $0
/bin/bash
$ exit
exit
$ /bin/../bin/../bin/bash
$ echo $0
/bin/../bin/../bin/bash
$ exit
exit
$ zsh
$ echo $0
zsh
$ exit
$ /bin/zsh
$ echo $0
/bin/zsh
$ exit
$ /bin/../bin/../bin/zsh
$ echo $0
/bin/../bin/../bin/zsh
$ exit