我知道有两种方法可以做到这一点.第一种是在当前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输出.