即使脚本终止,如何使shell脚本完成的更改也是永久性的?
例如:script.sh
#!/bin/sh
cd dir2
pwd
使用此脚本:
cd dir1
script.sh
pwd
我明白了:
dir2
dir1
脚本终止后如何留在dir2?
答案 0 :(得分:3)
script.sh
在子进程(“subshell”)中执行,更改子进程中的工作目录不会影响父进程的工作目录。
要使用看起来像“脚本”的内容更改目录,您至少有3种可能性:
script.sh
,请参阅示例here; script.sh
或仅source
.
最后一个例子:
source script.sh
或
. script.sh
更多关于source
命令here。
还有另一个非常奇怪的可能性,请看这里:change working directory of caller。不过,不要太认真,对程序员来说这是一个非常讨厌的玩笑。