Estou tentando obter o caminho do script que estou obtendo. estou fazendo o seguinte:
DIR="$(dirname "$(readlink -f "$0")")"
Mesmo assim eu consigo
readlink: invalid option -- 'b'
Estou em uma máquina RedHat 6 usando bash. Não tenho certeza se devo fazer isso de uma maneira diferente.
Usar
${BASH_SOURCE[-1]}
:Esta é uma matriz que contém os arquivos de origem para a pilha de chamadas de função do shell atual e o último elemento dela será a origem do script principal.
Isso deve funcionar independentemente de o script ter sido originado
source
ou não.A versão específica
bash
que você está usando é a versão 4.2.1. Índices negativos em arrays (que fazem referência a partir do final do array) foram adicionados na versão 4.3. Para obter o mesmo efeito${BASH_SOURCE[-1]}
de uma versão pré-4.3 dobash
, useSe eu entendi corretamente, isso deve funcionar: