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
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 "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
.