Bagaimana cara mengganti nama pengguna saya dalam skrip dengan variabel

9

Saya ingin membuat skrip instalasi untuk PC di rumah dan saya ingin membuatnya lebih fleksibel.

Bagaimana cara mengganti nama pengguna saya dengan variabel pengguna saat ini?

Contoh: unduh ke: / home / THISUSER / Downloads /

FixXxeR
sumber
2
Anda dapat menggunakan variabel $HOMEuntuk rumah, dan $USERuntuk pengguna :)
dadexix86
2
@ dadexix86 Anda juga dapat mengirim jawaban. Pertanyaan ini terlalu murah untuk membuang waktu dalam komentar
Sergiy Kolodyazhnyy
@Serg ya, tapi saya hampir yakin itu adalah duplikat, dan saya mencari yang asli :)
dadexix86
Perhatikan bahwa folder Unduhan hanya ada di sistem bahasa Inggris. Mereka dapat diganti namanya jika pengguna memilih lokalisasi yang berbeda.
Byte Commander
unduh hanya sebagai contoh. File akan dihapus setelah instalasi. Tetapi terima kasih atas info yang berguna
FixXxeR

Jawaban:

21

Anda dapat menggunakan variabel $HOMEuntuk rumah, dan $USERuntuk pengguna.

Contoh Anda kemudian dapat $HOME/Downloadsatau /home/$USER/Downloads.

dadexix86
sumber
10
Tidak semua sistem menggunakan / home untuk direktori home, jadi praktik terbaik adalah menggunakan $ HOME jika Anda mereferensikan direktori home.
penanggung jawab
3
@asmeurer, kami hanya berurusan dengan Ubuntu dan turunan resmi. Versi default apa yang tidak digunakan / home?
Rinzwind
4
Hanya karena situs ini hanya tentang Ubuntu tidak berarti Anda harus menghindari penulisan kode portabel dan menggunakan praktik terbaik.
penanggung jawab
15

Jika Anda ingin melakukan ini, Anda harus menggunakan ...

more ~/.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="/discworld/Desktop"
XDG_DOWNLOAD_DIR="/discworld/Downloads"
XDG_TEMPLATES_DIR="/discworld/Templates"
XDG_PUBLICSHARE_DIR="/discworld/Public"
XDG_DOCUMENTS_DIR="/discworld/Documents"
XDG_MUSIC_DIR="/discworld/Music"
XDG_PICTURES_DIR="/discworld/Pictures"
XDG_VIDEOS_DIR="/discworld/Videos"

jadi itu akan menjadi

echo $(xdg-user-dir DOWNLOAD)

dan itu akan menunjukkan lokasi unduhan default (dalam kasus saya /discworld/Downloads). Bekerja untuk semua kata-kata ini. Suka ...

echo $(xdg-user-dir DESKTOP)
Rinzwind
sumber
Ini adalah cara universal yang nyata , selalu berhasil :)
Jacob Vlijm
Hanya xdg-user-dir DOWNLOADjika Anda ingin mencetaknya. : P
kos
Apa yang moredilakukan kapan !isatty(stdin)?
kucing
@JacobVlijm Ada sistem di mana xdg-user-dirs tidak diinstal. Mungkin kurang begitu di bawah Ubuntu, tapi itu pasti kurang universal daripada menggunakan $ HOME dan $ USER.
jazzpi
@jazzpi Karena kita berada di Ask Ubuntu , direktori pengguna di atas dalam lingkup pertanyaan bersifat universal, sedangkan `$ HOME / Downloads` jelas tidak.
Jacob Vlijm