我正在使用什么
- 桀骜
- MacOS 莫哈韦 14.10
我想做的事
$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
newvalue
怎么了
$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
myusername
我尝试过的
尝试设置USERNAME
、.bashrc
,.zshrc
但.profile
没有任何变化......
尝试unset
重置并没有任何变化...
答案1
shellUSERNAME
变量在 Z shell 中比较特殊。
它始终是 shell 进程的用户 ID 的帐户名。
您不会观察到在 Almquist、Watanabe、Korn 或 Bourne Again shell 中观察到的行为。就它们而言,此变量只是一个普通的 shell 变量,开始时未设置。以下是 93 Korn shell,例如:
$回显$用户名 $ 用户名=wibble $回显$用户名 摆动 $
在 Z shell 中,它以 shell 进程的 UID 的帐户名开始。尝试设置它将会尝试更改该 UID。如果您不是超级用户并将变量保留为之前的样子,这当然会失败。
但是,如果您以超级用户身份运行 Z shell,您就会看到USERNAME
shell 变量和 shell 进程的用户 ID 都发生了变化。
根#回显$用户名 根 根#用户名=JdeBP 平均血压 %
进一步阅读
- 保罗·福斯塔德等人。 (2015-12-02)。 ”Shell 设置的参数”。Z 外壳手册。 5.2.