¿Cómo hacer que ksh actúe como si se hubiera invocado como un shell de inicio de sesión (AIX)?

¿Cómo hacer que ksh actúe como si se hubiera invocado como un shell de inicio de sesión (AIX)?

Cuando ejecuto el kshcomando, se ejecuta como un Shell sin inicio de sesión (como se esperaba). Lo que estoy tratando de lograr es ejecutarlo kshcomo un Login Shell como se puede hacer con bash.

Solo como referencia, bashpuede actuar como si se hubiera invocado como un shell de inicio de sesión especificando la -lopció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/.profilearchivo (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 kshque se comporte como un shell de inicio de sesión, siga leyendo.

kshse comporta como un shell de inicio de sesión si el primer carácter del argumento 0 es -; si estás en ksh( ksh93o mksh, no ksh88ni pdksh), zsho yash, bashentonces

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 basho zsh, entonces exec -l /path/to/kshes 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"'

información relacionada