バッシュをkshに変換

バッシュをkshに変換

私の現在のシェルはbashで、kshに変換したいです。 chshまたはypchshを介して変換しようとしましたが、変換する権限がありません。だから私は以下のように.bash_profileを使って変換しようとしました:

$vi .bash_profile
ksh
. ./.profile .

Puttyを再度開くと、.bash_profileが実行され、kshに変更されますが、.profileのエイリアスは解決されません。

答え1

下記の回答をご確認の上、ログインSHELLをご利用ください。

ksh --login

https://stackoverflow.com/questions/29072913/how-to-manually-start-interactive-ksh-and-have-it-execute-home-profile-on-sta

答え2

明らかに、あなたの例では.profile終了するまでインポートされませんksh。これがシェルがどのように機能するかです。

私のローカルコンピュータで次のことをしようとしています。

$ cat /home/test/.profile
exec ksh

$ cat ~/.kshrc
echo "commands you need in ksh"

設定ファイルはログイン時に一度だけ読み取るために機能するようです。私はユーザーとしてログインするたびにkshシェルを使います。tmuxまたはでscreen確認しないでください。

$ ps
  PID TTY          TIME CMD
 9667 pts/1    00:00:00 ksh
 9675 pts/1    00:00:00 ps

exec ksh単純な呼び出しを使用したので、whichの子として実行するのではなく、whichを置き換えるだけkshです。kshbashkshbash

それにもかかわらず、システム管理者または/etc/passwdの設定を更新する権限を持つ人にこれを行うように依頼することをお勧めします。 kshを直接呼び出すときに発生しない特定の設定をbashから継承すると、予期しない問題を回避するのに役立ちます。

関連情報