あなたがLinuxの初心者であり、あなたの仕事がコマンドラインを介して何かをすることを含むなら、言うまでもなく、あなたはターミナルウィンドウに多くの時間を費やさなければなりません。ご存知かもしれませんが、ls、cp、rmなど、非常に頻繁に使用するコマンドがいくつかあります。ただし、比較的使用されていないものもあります。このチュートリアルでは、そのような、あまり使用されないコマンドの1つである終了について説明します。 。
この記事に記載されているすべての例と手順は、Ubuntu18.04LTSで実行されているBashシェルでテストされていることに注意してください。
Linux終了コマンド
exitコマンドを使用すると、実行されているシェルを終了できます。
シェルウィンドウに複数のタブがある場合、このコマンドは実行されたタブを終了します。組み込みコマンドであるため、exit専用のマニュアルページが見つからない可能性が高くなります。公式ドキュメントにアクセスするには、次のコマンドを実行します。
help exit
私のシステムでは、前述のコマンドによって次の出力が生成されました。
exit: exit [n]
Exit the shell.
Exits the shell with a status of N. If N is omitted, the exit status
is that of the last command executed.
さて、あなた方の何人かはなぜ(あるいはいつ)Nが必要なのかと尋ねるかもしれません。さて、値(基本的には終了ステータス)は、コマンドがスクリプト(bashスクリプト)内から使用される場合に主に使用されます。場合によっては、この値は人間が読める形式のエラー、警告、または通知にマッピングされます。
また、上記のヘルプコマンドの出力から明らかなように、値Nが明示的に指定されていない場合、最後に実行されたコマンドの終了ステータスはその値と見なされます。
簡単な例を見てみましょう。私が行ったことは、ユーザーアカウントを切り替えて、ルートシェルに入ったということです。
次に、exitコマンドを使用してシェルを終了しました。また、終了ステータス値として8を使用しました。
ここで、親シェル(戻った場所)で、次のコマンドを使用して終了ステータスを確認しました。
echo $?
したがって、ルートシェルのexitコマンドに渡されたのと同じステータス値であることがわかります。したがって、この方法でステータスにアクセスし、意図したとおりに実行できます。
ここで、別の例を示します。ルートシェルからの終了ステータスを明示的に渡さなかったのですが、親シェルで問い合わせると、ルートシェルで実行された最後のコマンドの終了ステータスが返されました。
必要に応じて、シェルが終了したときにシステムに実行させるアクションを定義することもできます。たとえば、終了時に1つまたは複数のファイルを削除したい場合があります。このためには、トラップを設定する必要があります。これは、次の方法で実行できます。
trap "ENTER-COMMAND-HERE" EXIT
したがって、終了時にシステムに実行させたいアクションが何であれ、対応するコマンドを上記の二重引用符で囲む必要があります。たとえば、次のコマンドを使用しました:
trap "rm hypotheticalfile.txt" EXIT
実際、私のシステムにはそのようなファイルは存在しないため、exitコマンドを実行すると、シェルはこのエラーを表示するはずです。そして、それが実際に起こったことです-以下を参照してください:
したがって、このようにして、出口にトラップを設定できます。トラップの詳細については、次のコマンドを実行してください。
help trap
特にコマンドラインの初心者の場合、exitコマンドに関してはそれほど学習曲線はありません。そして、あなたはおそらく今これに同意するでしょう。したがって、ここで説明したことをすぐに試して、exitコマンドの使用を開始してください(まだ実行していない場合)。疑問や質問がある場合は、下にコメントを残してください。