また、これらの変数は常に現在ログインしているユーザー名と一致しますか(私のDebianシステムでは一致します)?他のUnix(ライク)システムでの可用性を想定できますか?
なぜwhoami
を使うのかも気になります これらの変数のいずれかを読み取るだけでなく、
承認された回答:
ログインです 。
Linuxのlogin(1)のマニュアルページには次のように書かれています:
$ HOMEの値 、 $ USER 、 $ SHELL 、 $ PATH 、 $ LOGNAME 、および $ MAIL パスワードエントリの適切なフィールドに従って設定されます。
FreeBSDのlogin(1)のマニュアルページには次のように書かれています:
ログイン ユーティリティは、ユーザーのホームディレクトリ(HOME)、コマンド
インタプリタ(SHELL)、検索パス(PATH)、端末タイプ(TERM)、およびユーザー名を指定する情報を環境に入力します(environ(7)を参照)。
(LOGNAMEとUSERの両方)。
NetBSD、OpenBSD、OSXのマニュアルページは同じことを言っています。
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);
パッケージXの特定のバージョンをインストールするようにYumに指示する方法は?
Rsync出力の「matches」、「hash_hits」、「false_alarms」とは何ですか?「data =0」は成功を意味しますか?