我想在shell脚本中更改路径环境变量。 执行shell脚本后,应修改path变量。
答案 0 :(得分:8)
我知道有两种方法可以做到这一点。第一种是使用以下任一项在当前shell的上下文中运行脚本:
. myscript.sh
source myscript.sh
但是存在以各种各样的东西污染当前shell的风险。
我更喜欢一种信息泄漏量最小的解决方案。这意味着仍然将其作为子shell运行,但在statndard输出上输出新路径:
PATH=$(myscript.sh)
这个方法要好得多,因为路径是可以受子shell影响的唯一事物,但你必须小心那些子shell输出。
答案 1 :(得分:1)
您需要获取脚本而不是执行它。
. script.sh
或
source script.sh
在脚本内部,只需输出od即可设置变量。
执行脚本时,它在一个单独的shell进程中运行,并且不能轻易更改父shell的变量。
更多相关信息:Can a shell script set environment variables of the calling shell?