![如何臨時更改 bash 追蹤/詳細模式?](https://rvso.com/image/164708/%E5%A6%82%E4%BD%95%E8%87%A8%E6%99%82%E6%9B%B4%E6%94%B9%20bash%20%E8%BF%BD%E8%B9%A4%2F%E8%A9%B3%E7%B4%B0%E6%A8%A1%E5%BC%8F%EF%BC%9F.png)
我用來-x
追蹤 bash 腳本的執行:
#!/bin/bash -x
x=1
y=2
執行期間發送到輸出
+ x=1
+ y=2
問題:如何在腳本中間停止/暫停追蹤模式然後再次啟用它?請注意 ti 與 y=2 >/dev/null 之類的內容無關。
是否可以使用詳細模式 ( #!/bin/bash -v
)?
答案1
這set
內建控制這些選項。
打開xtrace
:
set -x
要將其關閉:
set +x
這有點像加號和減號的逆邏輯,但事實就是如此。
同樣,所有其他支援的選項也可以在命令列(*)set
上設置,與等相同。bash -u
set -u
help set
有些選項也有長形式,例如set -o xtrace
與 相同set -x
。
(* 不過,我們不能反過來說。並非所有命令列選項都可以使用 來設置set
,例如-l
沒有等效項,顯然也沒有-c
。)