私が使用しているもの
やりたいこと
$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
newvalue
何IS HAPPENING
$ echo $USERNAME
myusername
$ export USERNAME=newvalue
$ echo $USERNAME
myusername
私が試したこと
.bashrc
、.zshrc
、.profile
にUSERNAME
を設定しようとしましたが、何も変更されません。
unset
を試し、リセットしても何も変わりません。
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%