Czy podczas uruchamiania z -x
opcją możliwe jest wyłączenie poszczególnych poleceń z echa?
Staram się, aby wynik był jak najbardziej schludny, więc uruchamiam niektóre części mojego skryptu w podpowłoce set +x
. Jednak set +x
sam wiersz jest nadal powtarzany i nie dodaje żadnych cennych informacji do wyniku.
Pamiętam, że w dawnych, złych .bat
czasach, kiedy biegałem echo on
, poszczególne linie mogły być zwolnione, zaczynając je od @
. Czy jest jakiś odpowiednik w 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
Po uruchomieniu powyższego dane wyjściowe to:
+ 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