Comment remplacer mon nom d'utilisateur dans un script avec une variable


9

Je veux créer un script d'installation pour mon PC personnel et je veux le rendre plus flexible.

Comment remplacer mon nom d'utilisateur par la variable utilisateur actuelle?

Exemple: téléchargement vers: / home / THISUSER / Téléchargements /


2
Vous pouvez utiliser la variable $HOMEpour la maison et $USERpour l'utilisateur :)
— dadexix86

2
@ dadexix86, vous pouvez aussi poster une réponse. Cette question est beaucoup trop bon marché pour perdre du temps dans les commentaires
— Sergiy Kolodyazhnyy

@Serg oui, mais je suis presque sûr qu'il s'agit d'un doublon, et je recherche celui d'origine :)
— dadexix86

Notez que le dossier Téléchargements existe uniquement sur les systèmes anglais. Ils peuvent être renommés si l'utilisateur a choisi une localisation différente.
— Byte Commander

le téléchargement n'était que par exemple. Les fichiers seront supprimés après l'installation. Mais merci pour l'info utile
— FixXxeR

Réponses:


21

Vous pouvez utiliser la variable $HOMEpour la maison et $USERpour l'utilisateur.

Votre exemple peut alors être $HOME/Downloadsou /home/$USER/Downloads.


10
Tous les systèmes n'utilisent pas / home pour les répertoires personnels, donc la meilleure pratique consiste à utiliser $ HOME si vous faites référence au répertoire personnel.
— asmeurer

3
@asmeurer, nous ne traitons qu'avec Ubuntu et les dérivés officiels. Quelle version par défaut n'utilise pas / home?
— Rinzwind

4
Ce n'est pas parce que ce site concerne uniquement Ubuntu que vous devez éviter d'écrire du code portable et d'utiliser les meilleures pratiques.
— asmeurer

15

Si vous voulez faire cela, vous devez utiliser ...

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"

ce serait donc

echo $(xdg-user-dir DOWNLOAD)

et il montrera l'emplacement de téléchargement par défaut (dans mon cas /discworld/Downloads). Fonctionne pour tous ces mots. Comme ...

echo $(xdg-user-dir DESKTOP)

C'est la vraie voie universelle,
— ça

Juste xdg-user-dir DOWNLOADsi vous voulez l'imprimer. : P
— kos

Que fait morequand !isatty(stdin)?
— chat

@JacobVlijm Il existe des systèmes sur lesquels xdg-user-dirs n'est pas installé. Probablement moins sous Ubuntu, mais c'est certainement moins universel que d'utiliser $ HOME et $ USER.
— jazzpi

@jazzpi Puisque nous sommes sur Ask Ubuntu , les répertoires de l'utilisateur ci-dessus dans le cadre de la question sont universels, contrairement à $ HOME / Downloads.
— Jacob Vlijm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.