Anda tidak boleh mengurai /etc/passwdsecara langsung. Anda mungkin berada di sistem dengan pengguna jarak jauh, dalam hal ini mereka tidak akan masuk /etc/passwd. The /etc/passwdFile mungkin berada di tempat lain. Dll
Jika Anda memerlukan akses langsung ke basis data pengguna, gunakan getent.
$ getent passwd phemmer
phemmer:*:1000:4:phemmer:/home/phemmer:/bin/zsh
$ getent passwd phemmer | awk -F: '{ print $6 }'
/home/phemmer
Namun ada juga cara lain yang tidak melibatkan penguraian:
$ user=phemmer
$ eval echo "~$user"
/home/phemmer
The ~operator dalam shell mengembang ke direktori home user tertentu ini. Namun kita harus menggunakan evalkarena perluasan variabel $userterjadi setelah ekspansi ~. Jadi dengan menggunakan evaltanda kutip ganda, Anda secara efektif memperluas $userpertama, lalu menelepon eval echo "~phemmer".
Setelah Anda memiliki direktori home, tempel sederhana /.sshhingga akhir.
$ sshdir="$(eval echo "~$user/.ssh")"
$ echo "$sshdir"
/home/phemmer/.ssh