Bash에서 DEBUG가 붙어 있습니다.
trap 'python /trap.py --command "$BASH_COMMAND"' DEBUG
trap.py
캡처된 명령이 실행되는 것을 방지하기 위해 실행할 수 있는 명령이 있습니까 ?
답변1
이것이 바로 이 extdebug
옵션의 목적입니다.
설정할 때:
"DEBUG" 트랩에 의해 실행된 명령이 0이 아닌 값을 반환하면 다음 명령을 건너뛰고 실행되지 않습니다.
따라서 명령을 건너뛰려면 해당 옵션을 설정 shopt -s extdebug
하고 trap.py
0이 아닌 종료 상태로 반환하기만 하면 됩니다.
$ 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
이 옵션 설정의 다른 의미에 대해 알아보려면 설명서를 확인하는 것이 좋습니다 .