Bash

使用“set -x”添加註釋

  • April 8, 2020

有時添加真的很方便

set -x

到腳本的頂部以在執行之前顯示所有命令。

創建具有不錯輸出的腳本只有一個缺點:我不知道如何以這種方式將文本輸出添加到腳本中。如果我使用

echo 'some comment'

這將導致列印它加倍:

+ echo 'some comment'
some comment

如果我使用#它根本不會顯示。

如何添加列印出來的評論echo?如果我使用set -x?

一種 hacky 方法就是將您的註釋寫為 no-op 命令的參數。特別有用的可能是:null 實用程序

set -x
: Some interesting notes on the following are ...

結果是:

+ : Some interesting notes on the following are...

冒號命令什麼都不做,接受你給它的任何參數,並且總是成功。您在跟踪輸出開始時會得到一個額外:的,但這對於您的目的來說可能不是一個大問題。

如果你不喜歡:更討厭的技巧是使用假命令:

set -x
seq 1 1
Some comment &>/dev/null
true

將輸出:

+ seq 1 1
1
+ Some comment
+ true

也就是說,Some comment當 shell 嘗試執行它時,該行將作為跟踪輸出列印出來,但生成的錯誤消息會發送到/dev/null. 由於許多明顯的原因,這很討厭,但對於set -e.


請注意,在任何一種情況下,shell 都會以普通方式解析您的註釋,因此特別是如果您有任何特殊字元需要引用它們,並且因為它是跟踪輸出,所以將顯示引用。

引用自:https://unix.stackexchange.com/questions/141501