Quando você invoca um comando no shell, o novo processo herda o diretório de trabalho do pai. Aqui estão duas maneiras de obter o diretório de trabalho:
Por "diretório que foi chamado de", você parece se referir ao seu diretório de trabalho. Você pode alterar isso dentro do script usando, por exemplo,, cdmas antes de fazê-lo, pwdo imprimirá. Provavelmente também estará na variável$PWD
Se você precisar do diretório de trabalho inicial após alterá-lo, salve-o na parte superior do seu script (antes de alterá-lo)
#!/bin/bash
initial_wd=`pwd`# ... do a lot of stuff ...# ⋮
cd "$initial_wd"
Se você estiver usando isso para voltar ao diretório em que iniciou, consulte também pushde popd.
@jordanm Na verdade, existe, mas isso não será necessariamente o diretório de trabalho inicial (por exemplo, se você já usou cdduas vezes)
derobert
$ OLDPWD é o que eu preciso; Eu executo scripts bash a partir do prompt do CMD no Win7 e essa era a variável de ambiente que continha o diretório do qual eu executava o script. Cheers
Respostas:
Quando você invoca um comando no shell, o novo processo herda o diretório de trabalho do pai. Aqui estão duas maneiras de obter o diretório de trabalho:
fonte
Por "diretório que foi chamado de", você parece se referir ao seu diretório de trabalho. Você pode alterar isso dentro do script usando, por exemplo,,
cd
mas antes de fazê-lo,pwd
o imprimirá. Provavelmente também estará na variável$PWD
Se você precisar do diretório de trabalho inicial após alterá-lo, salve-o na parte superior do seu script (antes de alterá-lo)
Se você estiver usando isso para voltar ao diretório em que iniciou, consulte também
pushd
epopd
.fonte
cd
duas vezes)