コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

exec $SHELL -l でシェルが再読込されるしくみ

よくシェルの再読込で

exec $SHELL -l

と紹介されるものの原理を把握できてなかったので調べたメモ

環境

$ help
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)

原理

  • exec : 「現行のジョブに置き換えてコマンドを続行する」
  • $SHELL : 起動中のシェルのパスを示す環境定数
  • -l: bashの場合「ログインシェルとして起動されたかのように bash を動作させる」というオプション

つまり、起動中と同様のシェルを今のシェルログインとしてログインするという仕組み

参考リンク