コマンドを実行すると、ksh
期待どおりに非ログインシェルとして実行されます。私が達成したいことはksh
。bash
ちなみにbash
optionsを指定してログインシェルとして呼び出すことができます-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の最初の文字が;の場合、ログインシェルとして機能します。ksh
(ksh93
またはmksh
、またはksh88
pdkshでもない)zsh
、yash
またはbash
にある場合
exec -a -ksh /path/to/ksh [optional arguments]
現在のシェルは、ログインシェルとして機能するKornシェルのインスタンスに置き換えられます。 (bash
またはにいる場合は短く、zsh
同じexec -l /path/to/ksh
効果があります。)
これらのシェルのどれも使用できない場合は、次のことを試すこともできますperl
。
perl -e 'exec {"ksh"} "-ksh"'