我正在为 Ubuntu VPN 制作一个对话框菜单,它可以调用其他脚本,如下所示:
cd
cd myrepo/gui
./filetocall.sh
第一个cd
是确保第二个目录cd
始终是主目录。
有没有更好的方法可以用来在一行中解决这个问题?(不需要在路径中特别命名用户,这样就可以在一些设备上安装和使用它?)
答案1
~
(波浪号)或$HOME
可用于获取当前用户的主目录,因此您可以执行以下操作:
cd ~/myrepo/gui
cd "$HOME/myrepo/gui"
甚至可以直接执行:
~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
答案2
使用与 相同的方法login
,避免被 的重新定义所欺骗$HOME
:
homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
答案3
cd ~/myrepo/gui
就可以了,或者再久一点:cd $HOME/myrepo/gui
。
~
是用户主目录的 shell 快捷方式,$HOME 是 shell 为其设置的变量。