Obter diretório do qual o script foi chamado


Respostas:


11

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:

echo "$PWD" # variable
pwd         # builtin command

1

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.


3
No bash, também há "$ OLDPWD".
Jordanm 25/10

@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
Darren Bishop
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.