Я не знаю ни одной оболочки, в которой есть такой оператор. Однако в большинстве оболочек (за исключением ksh) вы можете незаметно переключать xtrace
с помощью:
{
case $- in
(*x*) set +x;;
(*) set -x
esac
} 2> /dev/null
Таким образом, вы можете сделать его псевдонимом:
alias 'xx={
case $- in
(*x*) set +x;;
(*) set -x
esac
} 2> /dev/null'
И использовать как:
set -x
echo traced
xx; echo not traced; xx
echo traced
set +x
Обратите внимание, что с bash, вам понадобится shopt -s expand_aliases
для псевдонимов, которые будут раскрыты в неинтерактивных оболочках (например, в скриптах).
Radare2 принимает ассемблерные команды только в нижнем регистре. Следующее должно работать (, хотя не гарантируется возврат каких-либо результатов):
find /usr/lib -type f -name '*ssl*.so' -exec radare2 {} -qc "/c vzeroall" \;
Также можно искать ассемблерные команды, используя objdump
. В этом случае ваш пример будет выглядеть так:
find /usr/lib -type f -name '*ssl*.so' -exec bash -c 'objdump -d "$0" | grep -iq vzeroall' {} \; -print
Одним из преимуществ такого подхода является возможность указывать нужные ассемблерные инструкции в виде обычных регулярных выражений.