Je crée un menu de dialogue pour un VPN Ubuntu qui appelle d'autres scripts comme celui-ci:
cd
cd myrepo/gui
./filetocall.sh
La première cd
consiste à s’assurer que le répertoire de la seconde cd
est toujours la maison.
Existe-t-il une meilleure méthode que je puisse utiliser pour résoudre ce problème en une seule ligne? (Sans nommer spécifiquement l'utilisateur dans le chemin, il peut donc être installé et utilisé sur quelques appareils?)
~
(tilde) ou $HOME
peut être utilisé pour obtenir le répertoire de base de l'utilisateur actuel. Vous pouvez ainsi:
cd ~/myrepo/gui
cd "$HOME/myrepo/gui"
Ou même l'exécuter directement:
~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
Utilisez la même méthode utilisée par login
, ce qui évite de se faire avoir par les redéfinitions de $HOME
:
homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
cd ~/myrepo/gui
fera l'affaire, ou un peu plus longtemps: cd $HOME/myrepo/gui
.
~
est un raccourci Shell pour le répertoire de base des utilisateurs, $ HOME est une variable définie par le Shell pour le même.