No caso de bash , isso depende se $SHELLOPTS está no ambiente ou não.
bash-4.4$ export SHELLOPTS
bash-4.4$ set -x
bash-4.4$ bash -c 'echo x'
+ bash -c 'echo x'
+ echo x
x
Veja como o bash -c 'echo x' herdou a opção xtrace . Para as opções definidas por shopt , é o mesmo, mas com a variável $BASHOPTS .
Ele é útil especialmente para a opção xtrace para depuração quando você deseja executar um script bash (ou qualquer comando executando um script bash ) e todos os outros scripts bash que ele invocar, recursivamente com xtrace (desde que nada faça set +x nesses scripts). Se o seu sh for bash , isso também os afetará, assim como o system("command line") feito em outros idiomas:
env SHELLOPTS=xtrace some-command