logoutとexitの違いを説明する上で、実際に試してみると分かりやすいのでメモ。
logout:ログインシェルを終了する
exit :シェルを終了する
※ログインシェル:OSにログインした時点で適用されるシェ ル
※サブシェル:シェルから起動された子プロセスのシェル($ sh など)
logoutでは、サブシェルは終了できない。
$ sh $ logout sh: logout: not login shell: use `exit'
exitでは、ログインシェルも含むシェルを終了できる。
$ exit
また、exit は引数で終了ステータスを指定できる。
$ sh $ exit 99 exit $ echo $? 99
引数を指定しなければ、終了ステータスはデフォルトの 0(←2014/10/12修正) 最後に実行したコマンドの終了ステータスになる。
$ sh $ exit exit $ echo $? 0