Я пытаюсь автоматизировать несколько общих задач, которые я выполняю по SSH на удаленном сервере. Для этого я использую PuTTY и его опцию "удаленная команда" (Connection> SSH) в нескольких сохраненных сеансах. Моя удаленная команда выглядит примерно так:
~/scripts/test; $SHELL -l
Выполненный сценарий отличается для каждого сохраненного сеанса и выполняет разные задачи. $SHELL -l
поддерживает активную сессию PuTTY после завершения выполнения скрипта.
Все это прекрасно работает для большинства скриптов, которые я запускаю. Тем не менее, у меня есть один, который использует цикл while для выполнения ряда команд, пока он не завершится с помощью Ctrl+C. Сценарий запускается нормально, но оболочка PuTTY не остается активной после ее завершения. $SHELL -l
, похоже, не выполняется.
Пример сценария с таким поведением выглядит следующим образом:
while true; do
echo "."
sleep 2
done
Следующие работы отлично выполняются вручную, я вижу ожидаемый результат от второй команды:
~/scripts/test; echo "done"
Однако вторая команда PuTTY "Удаленная команда" не выполняется. Действительно, если я изменю удаленную команду, чтобы включить echo
, она не отображается.
~/scripts/test; echo "done"; $SHELL -l
Поэтому я предполагаю, что мой вопрос: почему вторая команда в списке не выполняется удаленной командой, а выполняется вручную? И, что более важно, что я могу с этим поделать?
Если это актуально, я запускаю PuTTY на Ubuntu 14.04.