ksh をログイン シェルとして呼び出されたかのように動作させるにはどうすればよいですか (AIX)?

ksh をログイン シェルとして呼び出されたかのように動作させるにはどうすればよいですか (AIX)?

コマンドを実行すると、ksh非ログイン シェルとして実行されます (予想どおり)。 私が実現しようとしているのは、kshで実行できるのと同じように、ログイン シェルとして実行することですbash

参考までに、オプションbashを指定すると、ログイン シェルとして呼び出されたかのように動作できます-l。以下は 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).

これは、AIX サーバーで表示されるマニュアル ページへのリンクです。

http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds3/ksh.htm

ファイルの処理を無効にするオプションがあります$HOME/.profile(以下の引用を参照)。そのため、KornShell をログイン シェルとして使用する方法が必要です。

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?

ノート:

オペレーティングシステムはAIXであり、これが私が持っているすべてですexec残念ながら、シェルを次の文に置き換えることはできません。

exec -a ksh path/to/ksh

答え1

ログイン シェルを変更する場合は、(シェルの変更) を使用できます。ログイン シェルとして動作するchshインスタンスを単に実行したい場合は、読み進めてください。ksh

ksh引数0の最初の文字が-; の場合、ログインシェルとして動作します。 kshksh93またはmkshksh88または pdksh ではない)、zshyashまたはbashの場合、

exec -a -ksh /path/to/ksh [optional arguments]

は、現在のシェルを、ログイン シェルとして動作する Korn シェルのインスタンスに置き換えます。(bashまたはにいる場合はzsh、の方exec -l /path/to/kshが短くなり、効果は同じです。)

これらのシェルがいずれも利用できない場合は、以下も試すことができますperl:

perl -e 'exec {"ksh"} "-ksh"'

関連情報