我们应该将 Bash 特殊参数称为“环境常量”吗?

我们应该将 Bash 特殊参数称为“环境常量”吗?

看完之后这里进而这里,我得出的结论是,Bash 中所谓的“特殊参数”很像环境变量,但主要区别在于我们不应该重新分配特殊参数 - 我们可以在没有环境变量限制(但要非常谨慎)的情况下执行的操作。

因此,这是我的问题:

我们是否应该将 Bash 特殊参数称为“环境常量”(至少是隐喻性的)?

答案1

不。“环境”具有特定的含义,指的是传递给子进程的一组变量,这些变量存储在其进程空间中。将其他变量称为“环境”会产生误导且不准确。

答案2

它们实际上不是常量,因为您可以使用命令修改它们set,例如:

user@ehost:~$ set x y z
user@ehost:~$ echo $1 $2 $3
x y z

但它们是参数,因为它们是在调用 shell 时传入的。

相关内容