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

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

私は何を使用していますか?

  • 扱いにくい
  • 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

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

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

Almquist、Watanabe、Korn、またはBourne Againシェルで観察される動作は観察されません。彼らが考える限り、この変数は最初に設定されていなかった一般的なシェル変数にすぎません。たとえば、次は93 Kornシェルです。

$echo$ユーザー名

$ユーザー名=ウィブル
$echo$ユーザー名
スイング
$

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

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

root#echo$ユーザー名
root#ユーザー名=JdeBP
平均血圧%

追加読書

関連情報