web-dev-qa-db-ja.com

環境変数を変更できません

私が使用しているもの

  • zsh
  • MacOS Mojave 14.10

やりたいこと

$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
newvalue

何IS HAPPENING

$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
myusername

私が試したこと

.bashrc.zshrc.profileUSERNAMEを設定しようとしましたが、何も変更されません。

unsetを試し、リセットしても何も変わりません。

4

USERNAME Shell変数は、Zシェルでは特別です。

これは常にシェルプロセスのユーザーIDのアカウント名です。

Almquist、Watanabe、Korn、またはBourneAgainシェルで観察した動作は観察されません。この変数は、通常のシェル変数であり、関係する限り、設定されていない状態で始まります。たとえば、93 KornShellは次のとおりです。

$ echo $ USERNAME 
 
 $ USERNAME = wibble 
 $ echo $ USERNAME 
 wibble 
 $

Zシェルでは、シェルプロセスのUIDのアカウント名として始まります。設定しようとすると、そのUIDを変更しようとします。もちろん、スーパーユーザーでない場合は失敗し、変数を以前の状態に戻します。

ただし、スーパーユーザーとしてZシェルを実行した場合は、USERNAMEシェル変数とシェルプロセスのユーザーIDの両方が変更されます。

root#echo $ USERNAME 
 root 
 root#USERNAME = JdeBP 
 JdeBP%

参考文献

12
JdeBP