如何在 Bash 腳本中添加註釋
你有要說明的地方嗎?請將它們添加到你的 Bash 腳本中。
在 Bash 腳本中添加注釋是保持代碼整潔且易於理解的最有效方法之一。
你可能會問為什麼。
假設你的腳本包含一個複雜的正則表達式或多個複雜的代碼塊,在這種情況下,你可以添加注釋,以便其他開發人員或你可以了解該代碼塊的含義。
注釋掉部分代碼也有助於調試腳本。
在本教程中,我將引導你了解在 Bash 腳本中添加註釋的三種方法:
- 單行注釋
- 行內評論
- 多行注釋
那麼讓我們從第一個開始。
Bash 中的單行注釋
要添加單行注釋,你必須將哈希符號(#
)放在行的開頭並編寫注釋。
這是一個簡單的例子:
#!/bin/bash
# This is a comment
echo "Hello, World!"
執行時,注釋將被忽略,當我執行上面的命令時,它看起來像這樣:
?
#
注釋規則的唯一例外是腳本開頭的#!/bin/bash
行。它稱為 釋伴,用於指定運行腳本時要使用的解釋器。有不同的 Shell,語法也可能不同。因此,一個好的做法是指定腳本是為哪個 Shell 編寫的。例如,如果是 ksh,則可以使用#!/bin/ksh
.
Bash 腳本中的內聯注釋
或者,你可以將注釋放在代碼塊內以記錄該特定行的用途。
?
#
之後的任何內容在該行結束之前都不會執行,因此請確保在代碼末尾添加註釋。
這是一個簡單的例子:
#!/bin/bash
echo "Hello, World!" #Prints hello world
Bash 中的多行注釋
? Bash 中沒有內置的多行注釋功能。但是,有一些解決方法可以實現多行注釋效果。
顧名思義,Bash 腳本中的多行注釋允許你在多行中編寫注釋,或者通過將它們放在多行注釋部分來阻止執行代碼塊:
那麼讓我們從第一個開始。
1、對塊注釋的每一行使用 #
如果你的目的是解釋腳本的一部分,我建議使用此方法。畢竟,#
才是真正的注釋功能。
這也是許多開發人員使用的方法。
假設你必須在一開始就解釋腳本的用途、作者信息或許可信息。你可以這樣寫:
#!/bin/bash
######################################
## This script is used for scanning ##
## local network ##
## Licensed under GPL 2.0 ##
######################################
這個 Bash 腳本的其它部分……
當你想說明 Bash 腳本的行為方式時這不錯。如果你正在調試 Bash 腳本並希望隱藏部分腳本,則在所需代碼的每一行開頭添加 #
並在調試後將其刪除是一項耗時的任務。
接下來的兩節將幫助你做到這一點。
2、冒號表示法
要使用冒號表示法,請在 : '
和結束的 '
之間編寫塊注釋,如下所示:
#!/bin/bash
: '
This is how you can use colon notation
And this line too will be ignored
'
echo "GOODBYE"
當你執行上面的腳本時,它應該只列印 GOODBYE
。
3、現場文檔
到目前為止,這是在 Bash 中編寫多行注釋的最流行的方法,你可以使用 <<
後跟分隔符(一組用於指定注釋開始和結束的字元)。
(LCTT 譯註:在編程領域,「here document」 是一個常見的術語,特指在腳本語言(如 Perl、Bash)中,能夠直接在代碼內部嵌入並處理一個數據塊或文本串的技術。儘管傳統上我們將它翻譯為「嵌入式文檔」 或不翻譯,但這個譯法似乎並不能完全地體現出原文的感覺和含義。為了讓這個概念變得更為直觀和易理解,我們建議將 「here document」 翻譯為 「現場文檔」。「現場」相比於「嵌入式」,更好的傳達了文檔就在代碼的當前位置,或代碼「現場」的含義。這樣的譯法也與原文 「here document」 中 「here」(這裡)的含義更為契合。我們希望這個譯法能夠在未來得到更廣泛的使用和認可,讓編程的世界因語言的精準而變得更美好。PS., 該譯法和解釋得到了 ChatGPT 的建議和生成。)
使用方法如下:
#!/bin/bash
<<DELIMITER
Comment line 1
Comment line 2
DELIMITER
echo "Hello, World!"
還困惑嗎? 這是一個簡單的例子:
#!/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
作為分隔符,但你可以使用任何內容,但要確保它從注釋中脫穎而出,否則會造成混亂。
當我執行上面的腳本時,它給出了以下輸出:
正如你所看到的,它忽略了從 <<COMMENT
到 COMMENT
的所有內容。
我希望本指南對你有所幫助。
(題圖:MJ/7c2a3ef4-5256-405e-b757-23e0ba1f0bc5)
via: https://itsfoss.com/bash-comments/
作者:Sagar Sharma 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive