Вы можете выполнить задачу, используя empty , небольшую утилиту от sourceforge. Это похоже на ожидание, но, вероятно, более удобно в этом случае. После того, как вы установили его, ваш первый scp
будет выполнен с помощью следующих двух команд:
./empty -f scp InstallSWIG.sh root@$node:/root/InstallSWIG.sh
echo YOUR_SECRET_PASSWORD | ./empty -s -c
Первый запускает вашу команду в фоновом режиме, заставляя ее думать, что она работает в интерактивном режиме на терминале. Другой отправляет ему данные со стандартного ввода. Конечно, вводить пароль в любом месте командной строки рискованно из-за того, что история оболочки сохраняется, пользователи могут видеть ее в результатах ps
и т. Д. Также небезопасно, но лучше хранить пароль в файле и перенаправить ввод второй команды из этого файла вместо использования echo и pipe.
После копирования на сервер вы можете запустить скрипт аналогичным образом:
./empty -f ssh root@$node sh InstallSWIG.sh
echo YOUR_SECRET_PASSWORD | ./empty -s -c