![两个脚本:一个改变目录,另一个不改变?](https://linux22.com/image/1143627/%E4%B8%A4%E4%B8%AA%E8%84%9A%E6%9C%AC%EF%BC%9A%E4%B8%80%E4%B8%AA%E6%94%B9%E5%8F%98%E7%9B%AE%E5%BD%95%EF%BC%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%B8%8D%E6%94%B9%E5%8F%98%EF%BC%9F.png)
我有两个脚本。一个是:
#!/bin/bash
if [ $1 = 1 ]; then
dir=mydir-1.6_
else
dir=mydir
fi
cd ~/code/${dir}$2
echo $(pwd)
尽管有几篇帖子说脚本是在子 shell 中运行的,但它应该不会对正在执行的 shell 产生影响,但上述脚本仍然会改变目录。
现在我有另一个脚本:
#!/bin/bash
dir=/WORK/temp/$1
mkdir -p $dir
cd $dir
wget http://somurl.com/archive.zip
unzip archive.zip
上述脚本将文件解压到预期目录中,但将调用 shell 保留在同一目录中。在两个脚本中调用 cd 时有什么区别?