2014-11-28 3 views
-1

전경/배경색과 같은 터미널 속성을 변경하는이 무한 루프가 있습니다.Bash-- 트랩 CTRL + C 터미널 속성을 다시 설정하고 무한 루프를 종료합니다.

사양 : CTRL+C을 누르면 루프/스크립트를 종료하기 전에 터미널을 원래 속성으로 재설정해야합니다.

이제는 CTRL+C을 함정에 넣고 어떻게 든 setterm reset을 사용하여 터미널을 재설정하지만 스크립트에 통합 할 수없는 것 같습니다.

CTRL+C을 트랩하면 while 루프 외부에서 터미널을 재설정하지 않습니다. 무한 루프에서도 작동하지 않습니다. 터미널 속성이 변경 유지 종료시

,

예 :

#!/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, 다시 않는 터미널, 종료?

답변

0

루프 내에서 trap 'reset; exit' SIGINT을 사용하면이 문제가 해결됩니다.

관련 문제