Как сослаться на файл относительно текущего dir в сценарии оболочки?

Я хочу выполнить сценарий оболочки, который копирует файл. Мне не нравится делать абсолютную ссылку на тот файл.

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?

1
задан 12 May 2017 в 14:22

1 ответ

Из 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 )"
1
ответ дан 7 December 2019 в 15:36

Другие вопросы по тегам:

Похожие вопросы: