
저는 AIX를 처음 접했고 다른 *nix 버전에서 잘 작동하는 몇 가지 트릭을 놓치고 있습니다.
( ) CTRL와 같은 ksh 스크립트에 시퀀스가 필요 하고 그렇게 하려면 을 사용하는 습관이 있지만 여기서는 작동하지 않습니다.^[
CTRL-[ctrl-v [
지금은 퍼티가 포함된 Windows 상자를 사용해야 하므로 Linux 상자에서 스크립트를 편집하고 AIX 서버로 스크립트를 전송할 수도 없습니다.
문제가 발생하는 이유와 해결 방법을 알고 계시나요?
답변을 재개하려면:
@데니스:
Korn 쉘 스크립트에서 이스케이프를 사용하는 몇 가지 다른 방법이 있습니다:
print '\E' escape1='\033' # contains the literal characters as shown
echo -e "$escape1"
printf '%b' "$escape1"
print "$escape1"
escape2=$'\e' # contains an actual escape
echo "$escape2"
printf '%s' "$escape2"
print "$escape2"
터미널 색상의 경우
man 5 terminfo
$'' 표기법은 ANSI-C 이스케이프를 허용합니다:
green=$'\e[01;32m'
ksh88이 $''를 지원하지 않을 수도 있습니다.
ksh88을 사용하고 있는데 ksh93으로 전환할 수 있습니다.
ctrl-v on command line
Version M-11/16/88i
/usr/dt/bin/dtksh
print ${.sh.version}
Version M-12/28/93d
green=$'\e[01;32m' doesn't give me any error on ksh88,
하지만 이스케이프 시퀀스를 확장하지는 않습니다. ksh93에서도 $''
같은 문제가 발생합니다.
green="$'\e[01;32m'"
대문자를 사용하면 E
문제가 해결되었습니다(이상해요!!!).
print $'\E[01;32m hello'
요약:
\E works
\e NO
\033 works just with echo
^[ ^v^[ do not work at all
답변1
이 시도:
stty -a
그리고 가 lnext
있는지 확인하세요 ^V
. 그렇지 않은 경우 다음을 시도하십시오.
stty lnext ^V
여기서는 "^"(캐럿)과 "V"를 별도의 문자로 입력합니다. 이제 ^V^[
( ^VEsc
키보드에서 작동합니까?)를 사용하여 이스케이프를 입력할 수 있는지 확인해 보십시오 .
또한 emacs 모드에 있는지 확인하십시오.
사용 방법에 따라 Korn 쉘 스크립트에서 이스케이프를 사용하는 몇 가지 다른 방법이 있습니다.
print '\E'
escape1='\033' # contains the literal characters as shown
echo -e "$escape1"
printf '%b' "$escape1"
print "$escape1"
escape2=$'\e' # contains an actual escape
echo "$escape2"
printf '%s' "$escape2"
print "$escape2"
물론, 일반적으로 escape 자체를 출력하지는 않습니다.
답변2
AIX를 기억한다면 Ctrl+ V이스케이프 시퀀스가 작동해야 하지만 AIX의 기본 TERM이 항상 예상한 것과는 달랐다는 것도 기억합니다. 변수를 확인하세요 $TERM
. 이상한 경우 :
export TERM=xterm
또는
export TERM=vt100
당신의 생각이 틀렸다면 +가 작동 $TERM
하더라도 +는 아무것도 하지 않을 수도 있습니다. VT100 계열입니다.CtrlVCtrl[