如何在 Bash 腳本中添加注釋
在 Bash 腳本中添加注釋是保持代碼整潔且易于理解的最有效方法之一。
你可能會問為什么。
假設(shè)你的腳本包含一個(gè)復(fù)雜的正則表達(dá)式或多個(gè)復(fù)雜的代碼塊,在這種情況下,你可以添加注釋,以便其他開發(fā)人員或你可以了解該代碼塊的含義。
注釋掉部分代碼也有助于調(diào)試腳本。
在本教程中,我將引導(dǎo)你了解在 Bash 腳本中添加注釋的三種方法:
- 單行注釋
- 行內(nèi)評論
- 多行注釋
那么讓我們從第一個(gè)開始。
Bash 中的單行注釋
要添加單行注釋,你必須將哈希符號(#
)放在行的開頭并編寫注釋。
這是一個(gè)簡單的例子:
#!/bin/bash
# This is a comment
echo "Hello, World!"
執(zhí)行時(shí),注釋將被忽略,當(dāng)我執(zhí)行上面的命令時(shí),它看起來像這樣:
??
#
注釋規(guī)則的唯一例外是腳本開頭的#!/bin/bash
行。它稱為 釋伴,用于指定運(yùn)行腳本時(shí)要使用的解釋器。有不同的 Shell,語法也可能不同。因此,一個(gè)好的做法是指定腳本是為哪個(gè) Shell 編寫的。例如,如果是 ksh,則可以使用#!/bin/ksh
.
Bash 腳本中的內(nèi)聯(lián)注釋
或者,你可以將注釋放在代碼塊內(nèi)以記錄該特定行的用途。
??
#
之后的任何內(nèi)容在該行結(jié)束之前都不會執(zhí)行,因此請確保在代碼末尾添加注釋。
這是一個(gè)簡單的例子:
#!/bin/bash
echo "Hello, World!" #Prints hello world
Bash 中的多行注釋
?? Bash 中沒有內(nèi)置的多行注釋功能。但是,有一些解決方法可以實(shí)現(xiàn)多行注釋效果。
顧名思義,Bash 腳本中的多行注釋允許你在多行中編寫注釋,或者通過將它們放在多行注釋部分來阻止執(zhí)行代碼塊:
- 在每行的開頭使用
#
- 冒號表示法(使用冒號后跟單引號)
- 現(xiàn)場文檔(使用
<<
后跟分隔符)
那么讓我們從第一個(gè)開始。
1、對塊注釋的每一行使用 #
如果你的目的是解釋腳本的一部分,我建議使用此方法。畢竟,#
才是真正的注釋功能。
這也是許多開發(fā)人員使用的方法。
假設(shè)你必須在一開始就解釋腳本的用途、作者信息或許可信息。你可以這樣寫:
#!/bin/bash
######################################
## This script is used for scanning ##
## local network ##
## Licensed under GPL 2.0 ##
######################################
這個(gè) Bash 腳本的其它部分……
當(dāng)你想說明 Bash 腳本的行為方式時(shí)這不錯(cuò)。如果你正在調(diào)試 Bash 腳本并希望隱藏部分腳本,則在所需代碼的每一行開頭添加 #
并在調(diào)試后將其刪除是一項(xiàng)耗時(shí)的任務(wù)。
接下來的兩節(jié)將幫助你做到這一點(diǎn)。
2、冒號表示法
要使用冒號表示法,請?jiān)?nbsp;: '
和結(jié)束的 '
之間編寫塊注釋,如下所示:
#!/bin/bash
: '
This is how you can use colon notation
And this line too will be ignored
'
echo "GOODBYE"
當(dāng)你執(zhí)行上面的腳本時(shí),它應(yīng)該只打印 GOODBYE
。
3、現(xiàn)場文檔
到目前為止,這是在 Bash 中編寫多行注釋的最流行的方法,你可以使用 <<
后跟分隔符(一組用于指定注釋開始和結(jié)束的字符)。
(LCTT 譯注:在編程領(lǐng)域,“here document” 是一個(gè)常見的術(shù)語,特指在腳本語言(如 Perl、Bash)中,能夠直接在代碼內(nèi)部嵌入并處理一個(gè)數(shù)據(jù)塊或文本串的技術(shù)。盡管傳統(tǒng)上我們將它翻譯為“嵌入式文檔” 或不翻譯,但這個(gè)譯法似乎并不能完全地體現(xiàn)出原文的感覺和含義。為了讓這個(gè)概念變得更為直觀和易理解,我們建議將 “here document” 翻譯為 “現(xiàn)場文檔”?!艾F(xiàn)場”相比于“嵌入式”,更好的傳達(dá)了文檔就在代碼的當(dāng)前位置,或代碼“現(xiàn)場”的含義。這樣的譯法也與原文 “here document” 中 “here”(這里)的含義更為契合。我們希望這個(gè)譯法能夠在未來得到更廣泛的使用和認(rèn)可,讓編程的世界因語言的精準(zhǔn)而變得更美好。PS., 該譯法和解釋得到了 ChatGPT 的建議和生成。)
使用方法如下:
#!/bin/bash
<<DELIMITER
Comment line 1
Comment line 2
DELIMITER
echo "Hello, World!"
還困惑嗎? 這是一個(gè)簡單的例子:
#!/bin/bash
<<COMMENT
This is a multi-line comment using a here document.
You can add as many lines as you want between <<COMMENT and the terminating keyword.
This block won't be executed by the shell.
COMMENT
echo "Hello, World!"
在上面的示例中,我使用了 COMMENT
作為分隔符,但你可以使用任何內(nèi)容,但要確保它從注釋中脫穎而出,否則會造成混亂。
當(dāng)我執(zhí)行上面的腳本時(shí),它給出了以下輸出:
正如你所看到的,它忽略了從 <<COMMENT
到 COMMENT
的所有內(nèi)容。
我希望本指南對你有所幫助。