최근에 (현재 termcap/terminfo 설정에 따라) 터미널 제어 코드를 "정상적으로" 출력할 수 있는 트릭을 보았지만 찾을 수 없습니다. 내가 올바르게 기억한다면 다음과 같은 작업을 수행할 수 있습니다.
echo "$(some_command home)"
에코되는 것은 이스케이프 시퀀스의 실제 바이트이며 이로 인해 $TERM
커서가 뒤로 이동하게 됩니다. 그 명령은 무엇입니까?
답변1
내가 보는 명령은 tput
내 질문처럼 사람들이 사용할 수 있습니다.
echo -n "$(tput home)"
물론 이 특별한 예는 중복됩니다. tput
자체 stdout에 쓸 매개변수 로 stdout을 실행하는 것은 낭비입니다. echo
문자열을 생성해야 하는 경우 이 방법이 더 적합할 수 있습니다 echo -n "$(tput thing1)some text$(tput thing2)other text
. 하지만 @icarus가 아래 주석에서 지적했듯이 이렇게 하면 문자열이 손실됩니다.타이밍트릭을 알아라 tput
.
따라서 가능할 때마다 유틸리티를 직접 호출하는 것이 가장 좋습니다.
tput clear
tput blink
echo "DANGER WILL ROBINSON"
tput bel
sleep 5
reset # NOTE: this might be symlinked to tput also!
핵심/내장 도구는 아니지만 ncurses의 일부로 제공되므로 널리 사용해야 합니다. 내가 하나 찾았어좋은 소개/개요이는 몇 가지 배경 정보를 제공하고 관련 명령도 표시합니다. 그리고이 점내보낼 수 있는 모든 명명된 "기능"의 편리한 목록이 포함되어 있습니다.