Linux Bash Script: команда выполняется после Control-C
Моя цель - открыть новое окно терминала, SSH на удаленном компьютере в этом окне, предложить пользователю продолжить, а затем выполнить команду. В настоящее время у меня есть:
gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK ; echo \"HELLO\" > hello.txt ; bash '"
Это работает и достигает моей главной цели.
Проблема заключается в том, что если пользователь пытается выйти из сценария через Control-C во время ожидания по запросу "Нажмите клавишу ВВОД...", выполняется остальная часть команды (например, hello.txt появляется на удаленном компьютере).
Есть мысли о том, почему это происходит и как этого избежать?
Спасибо!
1 ответ
CtrlC убивает read
команда, не все там, поэтому следующая команда выполняется. Ты можешь использовать &&
оператор, чтобы показать, что следующая команда должна быть выполнена, только если текущая команда успешно завершается.
gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK && echo \"HELLO\" > hello.txt ; bash '"