我有两个脚本。一个是:
#!/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 时有什么区别?