Juga, apakah variabel-variabel ini akan selalu cocok dengan nama pengguna yang saat ini masuk (mereka lakukan di sistem Debian saya)? Dapatkah saya mengasumsikan ketersediaannya di sistem Unix(-like) lain?
Saya juga ingin tahu mengapa seseorang menggunakan whoami
daripada hanya membaca salah satu variabel ini.
Jawaban yang Diterima:
Ini masuk .
Halaman manual login Linux (1) mengatakan:
Nilai untuk $HOME , $USER , $SHELL , $PATH , $LOGNAME , dan $MAIL diatur sesuai dengan bidang yang sesuai dalam entri kata sandi.
Halaman manual login(1) FreeBSD mengatakan:
Masuk utilitas memasukkan informasi ke dalam lingkungan (lihat environ(7)) menentukan direktori home pengguna (HOME), command
interpreter (SHELL), jalur pencarian (PATH), tipe terminal (TERM) dan nama pengguna
(baik LOGNAME dan USER).
Halaman manual NetBSD, OpenBSD dan OS X mengatakan hal yang sama.
Berikut kode sumber dari login 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);
Berikut kode sumber dari login FreeBSD:
(void)setenv("LOGNAME", username, 1);
(void)setenv("USER", username, 1);
(void)setenv("PATH", rootlogin ? _PATH_STDPATH : _PATH_DEFPATH, 0);