Jak zamienić moją nazwę użytkownika w skrypcie na zmienną

9

Chcę utworzyć skrypt instalacyjny dla mojego domowego komputera i uczynić go bardziej elastycznym.

Jak zastąpić moją nazwę użytkownika bieżącą zmienną użytkownika?

Przykład: pobierz do: / home / THISUSER / Downloads /

FixXxeR
źródło
2
Możesz użyć zmiennej $HOMEdla domu i $USERdla użytkownika :)
dadexix86
2
@ dadexix86 możesz również opublikować odpowiedź. To pytanie jest zdecydowanie zbyt tanie, aby tracić czas na komentarze
Sergiy Kolodyazhnyy
@Serg tak, ale jestem prawie pewien, że jest to duplikat i szukam oryginalnego :)
dadexix86
Pamiętaj, że folder Pobrane istnieje tylko w systemach angielskich. Można zmienić nazwę, jeśli użytkownik wybierze inną lokalizację.
Bajt Dowódca
pobieranie było tylko na przykład. Pliki zostaną usunięte po instalacji. Ale dziękuję za przydatne informacje
FixXxeR

Odpowiedzi:

21

Możesz użyć zmiennej $HOMEdla domu i $USERdla użytkownika.

Twoim przykładem może być $HOME/Downloadslub /home/$USER/Downloads.

dadexix86
źródło
10
Nie wszystkie systemy używają / home do katalogów domowych, więc najlepszą praktyką jest użycie $ HOME, jeśli odwołujesz się do katalogu domowego.
asmeurer
3
@asmeurer zajmujemy się tylko Ubuntu i oficjalnymi instrumentami pochodnymi. Jaka wersja domyślna nie używa / home?
Rinzwind
4
To, że ta strona dotyczy wyłącznie Ubuntu, nie oznacza, że ​​powinieneś unikać pisania przenośnego kodu i korzystania z najlepszych praktyk.
asmeurer
15

Jeśli chcesz to zrobić, powinieneś użyć ...

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"

tak by było

echo $(xdg-user-dir DOWNLOAD)

i pokaże domyślną lokalizację pobierania (w moim przypadku /discworld/Downloads). Działa dla wszystkich tych słów. Lubić ...

echo $(xdg-user-dir DESKTOP)
Rinzwind
źródło
To jest prawdziwie uniwersalny sposób, zawsze działa :)
Jacob Vlijm
Tylko xdg-user-dir DOWNLOADjeśli chcesz go wydrukować. : P
kos
Co robi morekiedy !isatty(stdin)?
kot
@JacobVlijm Istnieją systemy, w których xdg-user-dirs nie jest zainstalowany. Prawdopodobnie mniej w Ubuntu, ale jest zdecydowanie mniej uniwersalny niż używanie $ HOME i $ USER.
jazzpi
@jazzpi Ponieważ jesteśmy na Ask Ubuntu , powyższe katalogi użytkowników w zakresie pytania są uniwersalne, podczas gdy `$ HOME / Pobieranie` zdecydowanie nie jest.
Jacob Vlijm