在shell脚本中更改父shell的path变量

sun*_*oon 3 shell

我想在shell脚本中更改路径环境变量.执行shell脚本后应修改path变量.

pax*_*blo 8

我知道有两种方法可以做到这一点.第一种是在当前shell的上下文中运行脚本,其中包括:

. myscript.sh
source myscript.sh
Run Code Online (Sandbox Code Playgroud)

但是冒着用各种各样的东西污染当前shell的风险.

我更喜欢一种信息泄漏量最小的解决方案.这意味着仍然将其作为子shell运行,但在statndard输出上输出新路径:

PATH=$(myscript.sh)
Run Code Online (Sandbox Code Playgroud)

这个方法要好得多,因为路径是唯一可以受子shell影响的东西,但是你必须小心那些子shell输出.