2 command-line bash home-directory
我正在为调用其他脚本的 Ubuntu VPN 创建一个对话框菜单,如下所示:
cd
cd myrepo/gui
./filetocall.sh
Run Code Online (Sandbox Code Playgroud)
第一个cd是确保第二个的目录cd始终是 home。
有没有更好的方法可以用一行来解决这个问题?(在路径中没有特别命名用户,所以它可以在少数设备上安装和使用?)
小智 6
~(波浪号) 或$HOME可用于获取当前用户的主目录,因此您可以执行以下操作:
cd ~/myrepo/gui
cd "$HOME/myrepo/gui"
Run Code Online (Sandbox Code Playgroud)
甚至直接执行:
~/myrepo/gui/filetocall.sh
"$HOME"/myrepo/gui/filetocall.sh
Run Code Online (Sandbox Code Playgroud)
使用与 相同的方法login,避免被 的重新定义所迷惑$HOME:
homedir="$(getent passwd $( /usr/bin/id -u ) | cut -d: -f6)"
cd "$homedir"
Run Code Online (Sandbox Code Playgroud)