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

관련 정보