Bash shell 中 $0 的含义是什么

Bash shell 中 $0 的含义是什么

来自 Bash 手册

$0扩展为 shell 或 shell 脚本的名称。这是在 shell 初始化时设置的。

如果使用命令文件调用 Bash(请参见第 39 页,第 3.8 节 [Shell 脚本]),$0则设置为该文件的名称。

如果使用该选项启动 Bash -c(请参阅第 6.1 节 [调用 Bash],第 80 页),则将 then$0设置为要执行的字符串之后的第一个参数(如果存在)。

否则,它被设置为用于调用 Bash 的文件名,如参数零给出的那样。

我理解前两种情况,但不理解最后一种。 “否则”和“用于调用 Bash 的文件名”具体是什么意思?

答案1

Bash 可以通过多种方式调用,包括直接使用其可执行文件 ( /bin/bash) 或指向它的链接;经常出现这种情况/bin/sh。 “Otherwise”涵盖了这种情况,并且用于调用 Bash 的文件名就是 - bashsh/bin/sh

尝试一下,您会看到:bash然后echo $0prints bash/bin/bash然后echo $0prints /bin/bash,等等。

可以说这也涵盖了 shebangs,但也许这是第一个案例。

相关内容