追加のタスクを実行するためにbashコマンドを使用したいとします。簡単な例として、実行する前に「123」をエコーするようにしたいとします。
簡単な方法は、コマンドにエイリアスを追加することです。それでも元のファイルが必要なので、それを使用して見つけることができる正確なパスでそれを参照できますwhich
。たとえば、
$ which rm
/bin/rm
$ echo "alias rm='echo 123 && /bin/rm'" >> .bashrc
rm
を利用して照会できて簡単でしたwhich
。
しかし、私はこれを行うためにそれを使用しようとしていますが、それを理解できないようですexit
。which
$ which exit
$ echo $?
1
このコマンドには出力パスはありません。実際にwhich
コマンドがない場合は、ゼロ以外の終了コードを返します$PATH
。
私はこれが関数かもしれないと思いましたが、明らかにそうではありません。
$ typeset -F | grep exit
$ echo $?
1
したがって、exit
コマンドはどこにも関数やコマンドで定義されていませんが$PATH
、入力するとexit
端末が閉じます。どうやらどこかに定義されていますが、どこにいるのかわかりません。
これはどこで定義されており、どのように明示的に呼び出すことができますか?
ベストアンサー1
exit
殻です特殊内蔵注文する。それ立てられるシェルインタプリタを使用すると、シェルはこれについて知っており、検索することなく直接実行できます。
ほとんどのシェルでは、次のものを使用できます。
$ type exit
exit is a shell builtin
組み込み機能の実装方法を理解するには、シェルのソースコードを読む必要があります。ここにソースコードへのリンクがあります。bash
内蔵終了。
bash
、、、、、、使用するzsh
組み込みコマンドを明示的に呼び出すには、組み込みコマンドを使用します。ksh93
mksh
pdksh
exit
builtin
builtin exit
バラより組み込みシェルを明示的に呼び出すには?詳細については。