シェルは入れ子にできます。グラフィカル端末がシェルを起動し、SSH 接続がリモートシェルを起動し、シェルから別のシェルを起動できます。1 つを終了すると、通常は現在のシェルを起動したものへ制御が戻ります。
コマンドライン · レッスン 19
exit コマンド
現在のシェルを終了し、呼び出し元へ返す終了状態を選ぶ方法を学びます。
現在のシェルを終了する
exit コマンドは現在のシェルへ終了を要求します。
$ exit
そのシェルがグラフィカル端末タブの主プロセスなら、端末の設定に従ってタブが閉じることがあります。SSH セッションでは、リモートシェルを終了すると通常はローカルシェルへ戻ります。入れ子のシェルを起動した場合、exit は親シェルへ戻ります。
別のシェル内で Bash を起動し、親シェルへ戻りたい場合、入れ子の Bash セッションでどのコマンドを実行しますか?
終了状態を返す
任意の数値引数で、シェルの呼び出し元へ返す状態を設定します。
$ exit 0
慣例として 0 は成功、0 以外の値は失敗またはプログラムが定義する別の状態を表します。数値引数なしの場合、Bash は exit より前に実行された最後のコマンドの状態で終了します。
現在のシェルを終了し、呼び出し元へ明示的に成功を報告するコマンドはどれですか?
Bash で数値を指定しない exit は、どの状態を返しますか?
ログインシェルで `logout` を使う
Bash の logout 組み込みコマンドはログインシェルを終了します。
$ logout
非ログイン Bash シェルでは、logout はログインシェルではないと報告します。代わりに exit を使います。
ログインシェルを終了するために特に用意された Bash 組み込みコマンドはどれですか?
`Ctrl+D` または端末を閉じる
空の対話型プロンプトで Ctrl+D を押すと、通常は端末のファイル終端入力文字が送られます。Bash は一般にその状態を終了要求として解釈します。シグナルではなく、Bash の ignoreeof などの設定で動作が変わることがあります。
グラフィカル端末のウィンドウを閉じると、端末アプリケーションがプロセスの終了を要求し、実行中のジョブに影響することがあります。可能なら秩序ある exit を使い、セッションを閉じる前に実行中の作業を確認してください。
レッスン完了
exit コマンド を完了しました
これで現在のシェルを終了し、その完了状態を伝えられるようになりました。
exitで現在のシェルの呼び出し元へ戻る。成功には
0、それ以外には定義済みの 0 以外の状態を指定する。引数なしの
exitが使う状態を理解する。logoutはログインシェルだけに使う。Ctrl+Dをシグナルではなくファイル終端入力として認識する。