1 votes

Comment référencer un fichier relatif au répertoire courant dans un Shell Shell ?

Je veux exécuter un Shell Shell qui copie un fichier. Je n'aime pas faire une référence absolue à ce fichier.

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

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

Question : comment puis-je exécuter le copy.sh Shell Shell et faire référence à l'élément myapp.jar relative ? Comme si on commençait par monter un dossier, et qu'on allait ensuite dans /target ?

1voto

Rinzwind Points 270388

De myproject/docs/copy.sh vous voulez 2 répertoires en place et dans la cible. Vous pouvez le faire avec ...

../../target/myapp.jar

Ceci bien que...

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

J'utiliserais une variable et je la définirais au début de votre script ou à partir d'une configuration. Vous ne pouvez pas utiliser ../../ à l'intérieur de la balise scp quand vous avez "Projets" au-dessus.

Cela vous donnera le répertoire dans lequel se trouve votre script :

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X