在shell脚本中更改父shell的路径变量
我想更改shell脚本中的path环境变量。在shell脚本中更改父shell的路径变量,shell,Shell,我想更改shell脚本中的path环境变量。 执行shell脚本后,应修改path变量。您需要为脚本提供源代码,而不是执行脚本 . script.sh 或 在脚本内部,只需设置变量就足够了 当脚本被执行时,它在一个单独的shell进程中运行,并且不能轻易地更改父shell的变量 这里有更多信息:我知道有两种方法可以做到这一点。第一种方法是在当前shell的上下文中使用以下任一方法运行脚本: . myscript.sh source myscript.sh 但是,这有可能用各种各样的东西污染目
执行shell脚本后,应修改path变量。您需要为脚本提供源代码,而不是执行脚本
. script.sh
或
在脚本内部,只需设置变量就足够了
当脚本被执行时,它在一个单独的shell进程中运行,并且不能轻易地更改父shell的变量
这里有更多信息:我知道有两种方法可以做到这一点。第一种方法是在当前shell的上下文中使用以下任一方法运行脚本:
. myscript.sh
source myscript.sh
但是,这有可能用各种各样的东西污染目前的外壳
我更喜欢信息泄漏量最小的解决方案。这意味着仍将其作为子shell运行,但在statndard输出上输出新路径:
PATH=$(myscript.sh)
这种方法要好得多,因为路径是唯一受子shell影响的东西,但您必须小心子shell输出的内容。第三种明显的方法是“eval”,尽管这与寻源一样危险。例如,公共终端集实用程序“tset”输出用于调用shell评估的命令。
PATH=$(myscript.sh)