Eu tenho dois scripts. Uma é:
#!/bin/bash
if [ $1 = 1 ]; then
dir=mydir-1.6_
else
dir=mydir
fi
cd ~/code/${dir}$2
echo $(pwd)
O script acima altera os diretórios, embora existam vários posts que dizem que, como um script é executado em um sub-shell, ele não deve ter efeito no shell de execução.
Agora tenho outro script:
#!/bin/bash
dir=/WORK/temp/$1
mkdir -p $dir
cd $dir
wget http://somurl.com/archive.zip
unzip archive.zip
O script acima descompacta o arquivo no diretório esperado, mas deixa o shell de chamada no mesmo diretório. Qual é a diferença quando cd é chamado em ambos os scripts?