%3F.png)
Cuando ejecuto el ksh
comando, se ejecuta como un Shell sin inicio de sesión (como se esperaba). Lo que estoy tratando de lograr es ejecutarlo ksh
como un Login Shell como se puede hacer con bash
.
Solo como referencia, bash
puede actuar como si se hubiera invocado como un shell de inicio de sesión especificando la -l
opción. Aquí hay un extracto de la página de manual de bash:
BASH(1) BASH(1) NAME bash - GNU Bourne-Again SHell . . . OPTIONS . . . -l Make bash act as if it had been invoked as a login shell (see INVOCATION below).
Este es el enlace a la página de manual que veo en el servidor AIX:
http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds3/ksh.htm
Hay una opción para deshabilitar el procesamiento del $HOME/.profile
archivo (consulte la cita a continuación), por lo que tiene que haber una manera de usar KornShell como shell de inicio de sesión.
ksh Command Purpose Invokes the Korn shell. . . . Flags . . . -p Disables the processing of the $HOME/.profile file when you use the shell as a login shell, right?
Notas:
El Sistema Operativo es AIX yesto es todo lo que tengo paraexec
. Lamentablemente, no puedo reemplazar el shell con la siguiente oración:
exec -a ksh path/to/ksh
Respuesta1
Si desea cambiar su shell de inicio de sesión, puede usar chsh
(cambiar shell). Si simplemente desea ejecutar una instancia ksh
que se comporte como un shell de inicio de sesión, siga leyendo.
ksh
se comporta como un shell de inicio de sesión si el primer carácter del argumento 0 es -
; si estás en ksh
( ksh93
o mksh
, no ksh88
ni pdksh), zsh
o yash
, bash
entonces
exec -a -ksh /path/to/ksh [optional arguments]
reemplazará el shell actual con una instancia del shell Korn que se comporta como un shell de inicio de sesión. (Si está en bash
o zsh
, entonces exec -l /path/to/ksh
es más corto y tiene el mismo efecto).
Si ninguno de esos shells está disponible, también puedes probar perl
:
perl -e 'exec {"ksh"} "-ksh"'