
나는 쓴다:
$ infocmp -1 xterm ... 색상#8, 굵은 글씨=\E[1m, 깜박임=\E[5분, ... $ tput -Txterm 색상 && 에코 확인 || 에코 오류 8 좋아요 $ tput -Txterm 깜박임 && 에코 확인 || 에코 오류 ^[[5분 OK
그래서 나는 사용할 수 있습니다입력망막 기능을 확인합니다.
이 소리는 휴대용인가요? 다른 해결책이 있나요?
아니면 해결책을 고수할 수도 있습니다.
$ [ $TERM = xterm ] && echo ok || 에코 오류 좋아요
한 가지 용도는 .bashrc에 PS1을 설정하는 것입니다. sh 스크립트에서 주의를 끌기 위해 출력을 강조하는 또 다른 방법입니다. 다음과 같은 솔루션을 사용할 수 있습니다.
PS1='bash#' "$TERM"의 경우 xterm*) PS1='\[\033[35m\]bash# \[\033[0m\]' ;; 에삭
이는 bash의 내장 명령(매우 효율적)만 사용하고 모든 경우에 작동하지만 불행히도 이식성이 없습니다.
답변1
사용은 tput
다수의 운영 체제에 이식 가능합니다.
그러나 반환 코드를 확인하면 플랫폼의 terminfo 데이터베이스에 'xterm' 항목에 해당 기능에 대한 정의가 있는지 여부만 알 수 있습니다.
반환 코드는 현재 사용되는 'xterm' 클라이언트가 실제로 해당 기능을 지원하는지 여부를 알려주지 않습니다.
다음과 같은 매우 다양한 소프트웨어 프로그램이 있다는 점에 유의하십시오.'xterm' 호환 가능. 특히 xterm의 참조 구현에 대한 여러 연속 버전이 출시되었고 아마도 일부 포크가 있었다는 점을 고려하면 이들 모두가 모든 'xterm' 기능을 지원하는 것은 아닐 가능성이 높습니다. xterm 관리자는 "아무도 xterm 컨트롤의 절반 정도를 구현하지 않습니다."라고 말합니다.
내가 아는 한, 일반적인 표준 기관(ANSI, ECMA, The Open Group) 중 어느 곳도 xterm을 정의하는 표준을 발표하지 않았습니다. xterm의 현재 관리자는 또한vt100 테스트 프로그램(vttest)그의 xterm 작업을 돕기 위해.
따라서 xterm이라고 주장하는 터미널이 실제로 특정 xterm 기능을 지원하는지 확인하기 위해 응용 프로그램 자체가 TERM 값을 사용할 수 있는 방법은 없을 것입니다. 적어도 xterm 기능을 임의로 선택하는 경우는 아닙니다. 인간을 포함시키는 경우(vttest가 그랬던 것으로 기억함) 더 나은 기회를 가질 수 있습니다.
답변2
예, 휴대 가능합니다. 이건 어때:
# BASH : Configure things differently if current terminal has >= 8 colors.
if which tput > /dev/null 2>&1 && [[ $(tput -T$TERM colors) -ge 8 ]]; then
echo "Configure stuff to use colors here!"
else
echo "No tput or less than 8 colors, default to no coloring"
fi