处理用户主目录的正确方法

处理用户主目录的正确方法

我正在为 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 为其设置的变量。

相关内容