En bash, lors de l'exécution avec l' -x
option, est-il possible d'exempter les commandes individuelles de l'écho?
J'essaie de rendre la sortie aussi nette que possible, donc j'exécute certaines parties de mon script en sous-shell avec set +x
. Cependant, la ligne set +x
elle-même est toujours en écho et n'ajoute aucune information précieuse à la sortie.
Je me souviens du mauvais vieux .bat
temps, lors de l'exécution avec echo on
, les lignes individuelles pouvaient être exemptées en les commençant par un @
. Y a-t-il un équivalent en bash?
#!/bin/bash -x
function i_know_what_this_does() {
(
set +x
echo do stuff
)
}
echo the next-next line still echoes 'set +x', is that avoidable?
i_know_what_this_does
echo and we are back and echoing is back on
Lors de l'exécution de ce qui précède, la sortie est:
+ echo the next-next line still echoes 'set +x,' is that 'avoidable?'
the next-next line still echoes set +x, is that avoidable?
+ i_know_what_this_does
+ set +x
do stuff
+ echo and we are back and echoing is back on
and we are back and echoing is back on