exec $SHELL -l よろしくお願いします。

exec $SHELL -l よろしくお願いします。 Linuxのおまじない的なコマンドに exec $SHELL -l というのがありますが execは意味合いは引数を実行すると理解していますが、$SHELL -l の意味が わかりません。 いろいろ調べて入るのですがコレ!というものが見当たらず。 思い当たるようなことでも結構ですので糸口を見つけたいのでご助言、ご教授頂けますでしょうか。 よろしくお願いいたします。

Linux系239閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

現在実行しているシェルをログインシェルとして起動し直すということです。 exec コマンド で、「コマンド」に実行を移します。これはただコマンドを実行するのではなく、fork(), exec() して、自分自身を終了します。そうすることで、「コマンド」の終了を待つだけのためにシェルを実行したままにする無駄を省けます。 $SHELL には、現在実行中のシェルプログラムの名前が入っています。bash や ksh など多くのシェルで使えるテクニックです。 -l は、sh 互換であればログインシェルで起動するという意味です。ログインシェルでだけ実行されるコマンド (.profile に記述されている) というのがあるかもしれないので、-l なしで実行されたら -l 付きで実行するために exec $SHELL -l でログインシェルを起動します。

ThanksImg質問者からのお礼コメント

ご回答ありがとうございます。 ご回答頂いた内容なら私が調べ足らないのでしょうね。助かりました。

お礼日時:2016/12/9 17:44