#bash #scripting
#bash #создание сценариев
Вопрос:
У меня есть скрипт bash, который выполняет программу в цикле и считывает выходные данные из программы. Я бы хотел, чтобы, когда я нажимаю control-c, это завершало работу программы, а также скрипта.
Я пробовал это, но, похоже, программа не завершается.
control_c() {
exit
}
while true ; do
trap control_c SIGINT
my_command | while read line ; do
echo $line
...
done
done
Может кто-нибудь показать мне правильный способ выполнить то, что я описал? Спасибо!
Ответ №1:
Вы можете сделать что-то вроде этого:
control_c() {
kill $PID
exit
}
trap control_c SIGINT
while true ; do
my_command | while read line ; do
PID=$!
echo $line
...
done
Ответ №2:
Попробуйте завершить работу программы в вашей control_c()
функции, например,
pkill my_command