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 /


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.


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)

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.