Obtém o diretório do qual o script foi chamado

8

Eu tenho um script doSmth in /usr/bin . É possível obter e imprimir o diretório o script foi chamado de ?

Então, se eu chamar doSmth de /home/me , a saída será /home/me .

    
por Primož Kralj 25.10.2012 / 22:41

2 respostas

9

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
    
por 25.10.2012 / 22:47
1

Por "diretório de onde foi chamado" você parece estar falando do seu diretório de trabalho. Você pode alterar isso dentro do script usando, por exemplo, cd , mas antes de fazer isso, pwd imprime. Também será provável que esteja na variável $PWD

Se você precisar do diretório de trabalho inicial depois de alterá-lo, salve-o no topo 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 começou, consulte também pushd e popd .

    
por 25.10.2012 / 22:47