Я делаю диалоговое меню для VPN Ubuntu, которая звонит другим сценариям как это:
cd
cd myrepo/gui
./filetocall.sh
Первое cd
должен гарантировать каталог для второго cd
всегда домой.
Существует ли лучший метод, который я могу использовать для обращения к этому в одной строке? (Конкретно не называя пользователя в пути, таким образом, это может устанавливаться и использоваться на нескольких устройствах?)
~
(тильда) или $HOME
может использоваться для получения корневого каталога текущего пользователя, таким образом, Вы могли сделать:
cd ~/myrepo/gui
cd "$HOME/myrepo/gui"
Или даже выполните его непосредственно:
~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
Используйте тот же метод, используемый login
, который старается не дурачиться переопределениями $HOME
:
homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
cd ~/myrepo/gui
добьется цели, или немного дольше: cd $HOME/myrepo/gui
.
~
ярлык оболочки для пользовательского корневого каталога, $HOME является переменной, установленной оболочкой th для того же.