Выполнение многострочных команд по удаленному SSH - PullRequest
0 голосов
/ 03 июня 2019

Я хочу выполнить несколько строк команд оболочки через удаленный ssh.

Согласно https://unix.stackexchange.com/questions/1459/remote-for-loop-over-ssh, Мне просто нужно использовать одинарные кавычки для выполнения многострочного цикла for. Вот что я попробовал:

ssh user@server ‘cd ~/Data; cwd=pwd; for i in `find 201806 -name "day_*"`; do echo $i; cd $i; a.sh; cd $cwd; done’

Поскольку ничего не происходит, я предполагаю, что существует синтаксическая ошибка, которую я не должен понимать. 201806 - это имя папки в каталоге данных, и я проверил, что команда работает без ssh user@server. Есть предложения?

1 Ответ

1 голос
/ 03 июня 2019

Попробуйте это

ssh -v user@server ‘cd ~/Data; cwd=`pwd`; for i in `find 201806 -name "day_*"`; do echo $i; cd $i; ./a.sh; cd $cwd; done’

Также убедитесь, что ваш файл a.sh имеет разрешение на выполнение. Опция -v выдаст отладочные сообщения о его продвижении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...