Tecla Ctrl-v en AIX

Tecla Ctrl-v en AIX

Soy nuevo en AIX y extraño algunos trucos que funcionan bien en otras versiones de *nix.

Necesito una CTRLsecuencia en scripts ksh, como ^[( CTRL-[) y para hacer eso tengo la costumbre de usar ctrl-v [, pero aquí no funciona.

En este momento estoy obligado a usar un cuadro de Windows con PuTTY, por lo que ni siquiera puedo editar los scripts en mi cuadro de Linux y transferirlos al servidor AIX.

¿Sabes por qué y cómo puedo solucionar el problema?

Para resumir las respuestas:

@Dennis:

Hay algunas otras formas de utilizar el escape en un script de shell 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"  

Para los colores de los terminales

man 5 terminfo

La notación $'' permite el escape ANSI-C:

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

Puede ser que ksh88 no admita $''

Utilizo un ksh88, pero puedo cambiar a 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,

pero no expande la secuencia de escape. En ksh93 $''el mismo problema

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

El uso de mayúsculas Eresolvió el problema (¡¡raro!!!):

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

Para resumir:

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

Respuesta1

Prueba esto:

stty -a

y ver si lnextes ^V. Si no, prueba:

stty lnext ^V

donde escribirá "^" (carácter) y "V" como caracteres separados. Ahora intenta ver si puedes escribir un escape usando ^V^[(¿ ^VEscfunciona en tu teclado?).

Además, verifique si está en modo emacs.

Dependiendo de cómo lo uses, hay algunas otras formas de usar el escape en un script de shell 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"

Por supuesto, normalmente no generarías escape por sí solo.

Respuesta2

Si mal no recuerdo con AIX, la secuencia de escape Ctrl+ Vdebería funcionar, sin embargo, también recuerdo que el TÉRMINO predeterminado en AIX no siempre fue el que cabría esperar. Comprueba tu $TERMvariable. Si es raro:

export TERM=xterm  

o

export TERM=vt100

Si $TERMestá equivocado, incluso si Ctrl+ Vfunciona, es posible que Ctrl+ [no haga nada. Es una secuencia VT100.

información relacionada