
BashでDEBUGがついています。
trap 'python /trap.py --command "$BASH_COMMAND"' DEBUG
trap.py
キャプチャされたコマンドの実行を防ぐために実行できるコマンドはありますか?
答え1
これがこのextdebug
オプションの目的です。
設定時:
「DEBUG」トラップによって実行されたコマンドがゼロ以外の値を返すと、次のコマンドはスキップされ、実行されません。
したがって、コマンドをスキップするには、対応するオプションを設定してshopt -s extdebug
ゼロtrap.py
以外の終了状態に戻すだけです。
$ bash -xc 'shopt -s extdebug; trap "[[ \$BASH_COMMAND != uname ]]" DEBUG; echo test; uname'
+ shopt -s extdebug
+ trap '[[ $BASH_COMMAND != uname ]]' DEBUG
++ [[ echo test != uname ]]
+ echo test
test
++ [[ uname != uname ]]
bash
このオプション設定の他の意味については、マニュアルを確認することをお勧めします。