Bash--陷阱CTRL + C重置终端属性并结束无限循环

时间:2014-11-28 15:56:53

标签: bash terminal signals bash-trap

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

规格:按下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,重置终端并退出?

1 个答案:

答案 0 :(得分:0)

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