bash 中 BASH_ARGV0 的用途是什么?

bash 中 BASH_ARGV0 的用途是什么?

在发布中Bash-5.0据说他们添加了

BASH_ARGV0:扩展为 $0 并在赋值时设置 $0 的新变量。

这样做的目的是什么?这什么时候比仅仅使用有改进$0

答案1

变更日志说

    - BASH_ARGV0: new dynamic variable, returns $0 on reference and sets
      $0 on assignment.  From a suggestion from  Rocky Bernstein <[email protected]>
      a few years ago

洛基·伯恩斯坦 (Rocky Bernstein) 是《BASH 调试器。调试时,能够设置$0不同的值会很有用;这导致这个建议十年前,有一个set0内置程序可以实现这一点。我认为BASH_ARGV0特殊变量而不是内置变量的形式是等效的。

$0只允许您读取值;在 Bash 5 之前,只能在启动 shell 时设置。BASH_ARGV0允许您写入值以及读取值。0不是用于赋值目的的有效变量名称,并且启用0=...会相当复杂。

相关内容