我希望能够重新加载用户的 .profile,以便它“永久”更新 PATH,而无需重新启动系统。这就是我在 .profile 文件中所做的事情,但它不起作用。
if [[$PATH != "*path_to_directory*"]];then
PATH=<path_to_directory>:$PATH
fi
将添加内容保存到 .profile 后,我运行 source .profile 来重新加载它,但我只是收到错误,并且我的 PATH 未更新。
最佳答案
您的陈述有两个问题。首先,您需要在 [[
之后和 ]]
之前添加一个空格。其次,*
应该位于引号之外,以便匹配字符串:
if [[ $PATH != *"path_to_directory"* ]];then
echo "adding path to directory"
PATH=path_to_directory:$PATH
fi
所以输出将是:
$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
$ source .profile
adding path to directory
$ echo $PATH
path_to_directory:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
$ source .profile
$ echo $PATH
path_to_directory:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin
关于bash - 如何检查 PATH 是否已包含特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707051/