Bash DEBUG 트랩에서 명령 취소

Bash DEBUG 트랩에서 명령 취소

Bash에서 DEBUG가 붙어 있습니다.

trap 'python /trap.py --command "$BASH_COMMAND"' DEBUG

trap.py캡처된 명령이 실행되는 것을 방지하기 위해 실행할 수 있는 명령이 있습니까 ?

답변1

이것이 바로 이 extdebug옵션의 목적입니다.

설정할 때:

"DEBUG" 트랩에 의해 실행된 명령이 0이 아닌 값을 반환하면 다음 명령을 건너뛰고 실행되지 않습니다.

따라서 명령을 건너뛰려면 해당 옵션을 설정 shopt -s extdebug하고 trap.py0이 아닌 종료 상태로 반환하기만 하면 됩니다.

$ 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이 옵션 설정의 다른 의미에 대해 알아보려면 설명서를 확인하는 것이 좋습니다 .

관련 정보