이 reset
명령에는 화면 지우기와 복귀 사이의 지연이 포함됩니다. 이는 최신 터미널 유형에서도 마찬가지입니다 xterm-256color
. 왜?
man reset
지연에 대한 언급은 없으며 특수 문자열 인쇄만 가능합니다. (화면을 지우는 것에 대한 언급도 없습니다. 터미널 초기화 문자열에 포함된 내용인 것 같습니다.)
나는 다음과 같은 결과를 발견했습니다 strace -f reset
.
nanosleep({tv_sec=1, tv_nsec=0}, 0x7ffe1964f100) = 0
ioctl(2, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
답변1
실제 (하드웨어) 터미널에는 이것이 필요합니다. 예를 들어, 일부 장치의 경우 재설정하는 유일한 방법은 하드웨어 재설정을 수행하는 것입니다.
이는 터미널 에뮬레이터에 무해하며 차이를 구분할 수 있는 전통적인 방법이 없기 때문에(특정 이스케이프 시퀀스로 인해 하드웨어 재설정이 발생할 수 있는지 확인하기 어렵습니다) reset
터미널이 실제라고 가정합니다.
시간 지연은 tset
다음과 같이 1979년 3BSD로 거슬러 올라갑니다.
/* output startup string */
if (!RepOnly && !NoInit)
{
bufp = buf;
if (tgetstr("is", &bufp) != 0)
prs(buf);
bufp = buf;
if (tgetstr("if", &bufp) != 0)
cat(buf);
sleep(1); /* let terminal settle down */
}
ncurses에서 발전했지만 동일한 지침을 사용합니다.
if (!noinit) {
if (send_init_strings(my_fd, &oldmode)) {
(void) putc('\r', stderr);
(void) fflush(stderr);
(void) napms(1000); /* Settle the terminal. */
}
}
추가 자료: