bash REPLで`echo $ 0`を実行するとbash実行可能ファイルの名前のみが返されますが、zshで実行するとzsh実行可能ファイルの絶対パスが返されるのはなぜですか?

bash REPLで`echo $ 0`を実行するとbash実行可能ファイルの名前のみが返されますが、zshで実行するとzsh実行可能ファイルの絶対パスが返されるのはなぜですか?

echo $0bash 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

関連情報