4
$ BASH_COMMAND変数は何に適していますか?
Bashマニュアルによると、環境変数にBASH_COMMANDは シェルがトラップの結果としてコマンドを実行していない限り、現在実行されている、または実行されようとしているコマンド。 そのトラップコーナーケースを別として、私が正しく理解していれば、これはコマンドを実行したときに変数BASH_COMMANDにそのコマンドが含まれていることを意味します。絶対にその変数は、コマンドの実行後に設定されていないかどうかはっきりしていない(つまり、唯一のavaialbleである一方、 1はそれがあるので、「コマンドがあると主張かもしれませんが、コマンドはなく、後に、実行されている)、現在実行中またはされようとして実行します」 、それはコマンドでないだけでた実行します。 しかし、チェックしましょう: $ set | grep BASH_COMMAND= $ 空の。期待していたBASH_COMMAND='set | grep BASH_COMMAND='かもしれませんがBASH_COMMAND='set'、たぶん、ただ空に驚いただけです。 他のことを試してみましょう: $ echo $BASH_COMMAND echo $BASH_COMMAND $ それは理にかなっています。コマンドを実行するecho $BASH_COMMANDと、変数BASH_COMMANDに文字列が含まれますecho $BASH_COMMAND。今回はなぜ機能しましたが、以前は機能しませんでしたか? setもう一度やろう。 $ set | grep BASH_COMMAND= BASH_COMMAND='echo $BASH_COMMAND' $ 待って それはされた私は、実行時に設定するechoコマンドを、そして、それはありませんでした、その後解除。しかし、私がset再び実行したとき、コマンドに設定されてBASH_COMMAND いませんでしたset。setここでコマンドを実行する頻度に関係なく、結果は変わりません。では、実行時に変数が設定されますが、実行時には設定されechoませんsetか?どれどれ。 $ echo Hello AskUbuntu Hello AskUbuntu $ set | grep BASH_COMMAND= BASH_COMMAND='echo …