Como referenciar um arquivo relativo ao diretório atual em um script de shell?

1

Eu quero executar um script de shell que copie um arquivo. Eu não gosto de fazer referência absoluta a esse arquivo.

myproject/target/myapp.jar
myproject/docs/copy.sh

copy.sh contém: scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www

Pergunta: como posso executar o script shell copy.sh e referenciar o myapp.jar relativo? Como primeiro subir uma pasta e depois entrar em /target ?

    
por membersound 12.05.2017 / 13:22

1 resposta

1

De myproject/docs/copy.sh você quer dois diretórios para cima e para o alvo. Você pode fazer isso com ...

../../target/myapp.jar

Isso embora ...

scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www

Eu usaria uma variável e a colocaria no início do seu script ou de uma configuração. Você não pode usar ../../ dentro do scp quando tiver "Projetos" acima dele.

Isso lhe dará o diretório em que seu script está:

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    
por Rinzwind 12.05.2017 / 13:26