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.