また、この変数は常に現在ログインしているユーザー名(私のDebianシステム)と一致していますか?他のUnix(類似)システムでも使用できると仮定できますか?
whoami
また、なぜ人々がこれらの変数を読むのではなく使用するのか疑問に思います。
ベストアンサー1
それログイン。
Linuxログイン(1)マニュアルページには次のように記載されています。
の価値$HOME、$user、$シェル、$パス、$ログ名と $mailパスワード入力の該当するフィールドに従って設定します。
FreeBSDログイン(1)マニュアルページには次のように記載されています。
これログインユーティリティは環境に情報を入力します(参照: 環境(7))ユーザーのホームディレクトリ(HOME)、コマンドソルバー(SHELL)、検索パス(PATH)、端末タイプ(TERM)、およびユーザー名(LOGNAMEとUSER)を指定します。
これネットワークBSD、オープンBSDそしてオペレーティングシステムマニュアルページにも同じ内容が記載されています。
これはソースコードutil-linuxでログインします。
setenv("HOME", pwd->pw_dir, 0); /* legal to override */
setenv("USER", pwd->pw_name, 1);
setenv("SHELL", pwd->pw_shell, 1);
/* ... */
setenv("LOGNAME", pwd->pw_name, 1);
これはソースコードFreeBSDからログイン:
(void)setenv("LOGNAME", username, 1);
(void)setenv("USER", username, 1);
(void)setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0);