Trong bash, khi chạy với -x
tùy chọn, có thể miễn các lệnh riêng lẻ không lặp lại?
Tôi đang cố gắng làm cho đầu ra gọn gàng nhất có thể, vì vậy tôi đang chạy một số phần nhất định của tập lệnh của mình trong một khung con set +x
. Tuy nhiên, hàng set +x
vẫn được lặp lại và không thêm thông tin có giá trị vào đầu ra.
Tôi nhớ lại những .bat
ngày xưa tồi tệ , khi chạy với echo on
, các dòng riêng lẻ có thể được miễn bằng cách bắt đầu chúng bằng a @
. Có bất kỳ tương đương trong 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
Khi chạy ở trên, đầu ra là:
+ 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