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

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

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

3 ответа

Из 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
ответ дан 22 May 2018 в 22:41

Из 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
ответ дан 18 July 2018 в 13:25

Из 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
ответ дан 24 July 2018 в 20:10

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

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