Оболочка проверяет, существует ли файл в одной строке с ssh, затем cd и npm install

Синтаксис, который вы ищете:

ip tunnel add <name> mode <mode> ...

Например:

ip tunnel add gre0 mode gre ...

Имя - это произвольная текстовая строка, она может быть любой. Я обычно называю туннели по имени удаленной стороны для ясности.

0
22.03.2018, 20:58
1 ответ

Обратите внимание, что команды [[(, [иtest)такие же, как и любые другие. Таким образом, вам нужно &&, чтобы выполнить echoтолько в том случае, если [[завершится успешно.

ssh "root@${ipserver}" "[[ -d ${fullpathfile}/node_modules ]] && echo "Directory exist" || cd ${fullpathfile} && npm install "

Тем не менее, заключение ряда команд в двойные кавычки, подобные этому, может довольно быстро наскучить, особенно если имя вашего каталога содержит пробелы или вашим командам нужны собственные аргументы в кавычках.

Чтобы не было головной боли, лучше установить на сервер небольшой скрипт (, например, как "$HOME/bin/do _npm _install.sh" ), который делает то, что вам нужно, затем вызовите это с помощью ssh, например

ssh "root@${ipserver}" "bash ~/bin/do_npm_install.sh"
0
28.01.2020, 04:27

Теги

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