tecla ctrl-v no AIX

tecla ctrl-v no AIX

Sou novo no AIX e sinto falta de alguns truques que funcionam bem em outros sabores *nix.

Preciso de uma CTRLsequência em scripts ksh, como ^[( CTRL-[) e para isso tenho o hábito de usar o ctrl-v [, mas aqui não funciona.

No momento sou obrigado a usar um windows box com putty então não consigo nem editar os scripts na minha box Linux e transferir os scripts no servidor AIX.

Você sabe por que e como posso resolver o problema?

Para retomar as respostas:

@Dennis:

existem algumas outras maneiras de usar escape em um script Korn Shell:

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"  

Para as cores terminais

man 5 terminfo

A notação $'' permite o escape ANSI-C:

green=$'\e[01;32m'

Pode ser que ksh88 não suporte $''

Eu uso um ksh88, mas posso mudar para 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,

mas não expande a sequência de escape. No ksh93 $''o mesmo problema

green="$'\e[01;32m'"

Usar letras maiúsculas Eresolveu o problema (estranho!!!):

print $'\E[01;32m hello'

Para resumir:

\E  works
\e  NO
\033    works just with echo
^[     ^v^[ do not work at all

Responder1

Experimente isto:

stty -a

e veja se lnexté ^V. Se não, tente:

stty lnext ^V

onde você digitará "^" (caret) e "V" como caracteres separados. Agora tente ver se você consegue digitar um escape usando ^V^[( ^VEscfunciona no seu teclado?).

Além disso, verifique se você está no modo emacs

Dependendo de como você o está usando, existem algumas outras maneiras de usar escape em um script Korn Shell:

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"

Claro, você normalmente não produziria escape sozinho.

Responder2

Se bem me lembro do AIX, a sequência de escape Ctrl+ Vdeve funcionar, mas lembro também que o TERM padrão no AIX nem sempre foi o que você esperaria. Verifique sua $TERMvariável. Se for estranho:

export TERM=xterm  

ou

export TERM=vt100

Se você $TERMestiver errado, mesmo que Ctrl+ Vfuncione, Ctrl+ [pode não fazer nada. É uma sequência VT100.

informação relacionada