ctrl-v key no AIX

2

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

Eu preciso de uma seqüência CTRL em um script ksh, como ^[ ( CTRL - [) e para isso eu costumo usar o ctrl-v [, mas aqui não funciona.

No momento, sou obrigado a usar uma caixa do windows com putty, então não posso nem mesmo editar os scripts na minha caixa do Linux e transferir os scripts no servidor AIX.

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

Para retomar as respostas:

@Dennis:

there are a few other ways to use escape in a Korn shell script:

print '\E' escape1='3'    # 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"  

For the terminal colors

man 5 terminfo

$'' notation allow ANSI-C escaping:

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

It may be that ksh88 don't support $''

Eu uso um ksh88, mas posso mudar para o 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. Em ksh93 $'' o mesmo problema

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

A utilização de E em maiúsculas resolveu o problema (estranho !!!):

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

Para resumir:

\E  works
\e  NO
3    works just with echo
^[     ^v^[ do not work at all
    
por tmow 27.12.2010 / 09:58

2 respostas

3

Tente isto:

stty -a

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

stty lnext ^V

onde você digitará "^" (circunflexo) e "V" como caracteres separados. Agora tente ver se você pode digitar um escape usando ^V^[ (o ^VEsc funciona no seu teclado?).

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

Dependendo de como você o usa, há algumas outras maneiras de usar o escape em um script de shell Korn:

print '\E'
escape1='3'    # 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.

    
por 27.12.2010 / 17:16
2

Se eu me lembro com o AIX, a seqüência de escape Ctrl + V deve funcionar, mas lembro também que o TERM padrão no AIX nem sempre era o que você esperaria . Verifique sua variável $TERM . Se é estranho:

export TERM=xterm  

ou

export TERM=vt100

Se o seu $TERM estiver errado, então mesmo que Ctrl + V funcione, Ctrl + [ pode não fazer nada. É uma sequência VT100.

    
por 22.07.2017 / 10:38

Tags