Я хочу выполнить сценарий оболочки, который копирует файл. Мне не нравится делать абсолютную ссылку на тот файл.
myproject/target/myapp.jar
myproject/docs/copy.sh
copy.sh содержит: scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www
Вопрос: как я могу работать copy.sh
сценарий оболочки и ссылается myapp.jar
родственник? Как первое хождение по одной папке и затем вход /target
?
Из myproject/docs/copy.sh
вы хотите 2 каталога вверх и в цель. Вы можете сделать это с ...
../../target/myapp.jar
Это, хотя ...
scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www
Я бы использовал переменную и установил ее в начале вашего скрипта или из конфигурации. Вы не можете использовать ../../ внутри scp
, когда над ним есть «Проекты».
Это даст вам каталог, в котором находится ваш скрипт:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"