我有一个bash脚本,它在循环中执行程序并从程序中读取输出。我希望当我点击control-c时,它会终止程序和脚本。
我试过这个但似乎没有终止程序。
control_c() {
exit
}
while true ; do
trap control_c SIGINT
my_command | while read line ; do
echo $line
...
done
done
有人能告诉我完成我所描述的正确方法吗?谢谢!
答案 0 :(得分:6)
您可以这样做:
control_c() {
kill $PID
exit
}
trap control_c SIGINT
while true ; do
my_command | while read line ; do
PID=$!
echo $line
...
done
答案 1 :(得分:3)
尝试在control_c()
功能中删除程序,例如,
pkill my_command