相关疑难解决方法(0)

为什么`bash -c 'echo $0' ` 输出“bash”?

$ bash -c 'echo $0 ' foo 
foo

$ bash -c 'echo $0 '  
bash
Run Code Online (Sandbox Code Playgroud)

来自 bash 手册

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

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

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

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

“否则”是什么意思?

它包括哪些情况?

它是否包括 bash 以 -c 启动而没有任何“要执行的字符串后的参数”的情况?

bash -c 'echo $0 '根据引用中的第二种情况,我预计不会输出任何内容,但它输出bash.

谢谢。

bash

5
推荐指数
2
解决办法
2395
查看次数

标签 统计

bash ×1