为什么更改dir(cd)在这个mac脚本中不起作用?

时间:2017-08-10 18:37:31

标签: bash

我在一个名为/ Users / tcl / scripts / gotoroot:

的文件中有这个脚本
echo "hello"
cd /
echo "good bye"

但是当我运行它时,我得到了这个:

User:scripts tcl$ pwd
/Users/tcl/scripts
User:scripts tcl$ gotoroot
hello
good bye
User:scripts tcl$ pwd
/Users/tcl/scripts
User:scripts tcl$

目录没有改变,我不知道为什么?它应该是/,而不是/ Users / tcl / scripts

2 个答案:

答案 0 :(得分:5)

运行脚本时,它会在新进程中启动子shell。 setInterval()更改子shell内的目录,而不是终端进程内的目录。

将其放入脚本中进行测试:

location.assign("https://www.example.com.")

您应该会看到它在脚本中更改为cd

答案 1 :(得分:2)

Shell脚本在子进程内运行。 CD正在运行,但它发生在与主终端会话不同的进程中,并且一旦返回到终端会话就对工作目录没有影响。