-1

所以我有这个无限循环来改变终端属性,比如前景色/背景色。

规格:CTRL+C按下时,在退出循环/脚本之前,它应该将终端重置为原始属性。

现在我想我需要捕获CTRL+C并以某种方式使用setterm reset来重置终端,但似乎无法集成到脚本中。

当我在 while 循环之外捕获CTRL+C, 时,它不会重置终端。它在无限循环中也不起作用。

退出后,终端属性保持不变,

例子:

    #!/bin/bash
    while true;
    do
    tput civis 
    tput bold 
    tput setb 2 
    tput setf 4  
    tput bold 
    tput 10 40; echo "hello"
    tput 11 40; echo "there"
    done

如何捕获CTRL+C、重置终端和退出?

4

1 回答 1

0

没关系..trap 'reset; exit' SIGINT在循环内使用解决了这个问题。

于 2014-11-28T16:37:38.277 回答