在Bash-5.0的版本中提到他们添加了
BASH_ARGV0:一个新变量,它扩展为 $0 并在赋值时设置 $0。
这样做的目的是什么?什么时候这比仅使用有改进$0?
变更日志说
- BASH_ARGV0: new dynamic variable, returns $0 on reference and sets
$0 on assignment. From a suggestion from Rocky Bernstein <rocky@gnu.org>
a few years ago
Run Code Online (Sandbox Code Playgroud)
Rocky Bernstein 是BASH Debugger的最初作者之一。调试时,能够设置$0为不同的值会很有用;十年前,这导致了这个建议,即set0内置可以实现这一点。我认为BASH_ARGV0是等价的特殊变量形式而不是内置变量。
$0只允许您读取值;在 Bash 5 之前,它只能在启动 shell 时设置。BASH_ARGV0允许您写入和读取值。0不是用于赋值的有效变量名,启用0=...会更加复杂。