Você pode usar as variáveis de ambiente PWD e HOME: $PWD
é o diretório de trabalho atual, enquanto $HOME
é o diretório inicial do usuário atual. Você pode preceder as instruções executáveis no seu script:
if [ "$PWD" != "$HOME" ]; then exit; fi
Opcionalmente, você pode adicionar um código de erro ao comando exit
, caso o shell de chamada queira verificar o sucesso ou a falha do script.
Outra variável útil é OLDPWD: $OLDPWD
é o diretório anterior antes da última alteração do diretório. Você pode usar isso para fazer o script ser executado de qualquer lugar, cercando o script com:
cd "$HOME"
. . . . . .
cd "$OLDPWD"
Isso pressupõe que não há outras alterações de diretório no script; Caso contrário, use INITPWD="$PWD"
primeiro e retorne para $INITPWD
. Na verdade, na maioria das circunstâncias o script será executado em um subshell, então a mudança de volta para o diretório original será desnecessária, já que o cd
inicial não afetará o shell pai.