作為管理員,在管理 Linux 系統時,您可能經常運行 Bash 中的 echo 命令。但是,印刷文本是否是 echo 命令所能提供的全部?
在本教程中,您將仔細研究 echo 命令並學習一些其最有用的實際示例。
準備好了嗎?敬請關注,重新構想一下對 echo 命令的看法!
先決條件
本教程包括實踐演示。要跟隨進行,您只需要一台 Ubuntu 機器。本教程使用 Ubuntu 20.04,但其他 Linux 發行版也將適用。
使用 Bash Shell 的 echo 命令打印字符串
當您思考 echo 命令時,首先浮現在腦海的是將字符串值打印到控制台。是的,echo 命令直接從命令或腳本返回字符串。
但是在本教程的後面,您將以不同的視角看到 echo 命令。現在,看看這個命令如何將字符串輸出到控制台。
echo 命令的語法如下,其中:
- string – 要打印的文本。
- options – 您可以指定的修改輸出的可選參數。
運行下面的 echo 命令,不添加選項,將一個簡單的文本打印到控制台。此命令將字符串作為參數傳遞給 echo 命令。

抑制字符串中的尾隨換行符
echo 命令默認在每個字符串的末尾添加一個換行字符。因此,當打印多個字符串時,可能連接在一起的每個字符串都會打印在一個新行上。
-n 選項可以抑制尾隨的換行符,告訴 echo 命令將多個字符串打印在單行上。這個選項在打印進度條到控制台時非常有用。
運行以下命令以打印 “Progress:” 和 “50%”。
下面,您可以看到換行符分隔了這兩個字符串。

現在,運行以下命令,添加 -n 選項,以打印 “Progress:” 和 “50%” 這兩個字符串。
如下所示,由於使用了 -n 選項來抑制換行符,所以現在這兩個字符串都在一行上。

打印變量值
在編寫腳本時,通常將值暫時存儲到變量中,然後可以使用 echo 命令打印該值。這個功能在檢查變量值以調試 shell 腳本時非常有用。
運行以下命令將 number 變量的值設置為 10,並將該值打印(echo)到控制台。

解釋轉義序列
轉義序列是表示特殊字符的一系列字符,您可以使用 -e 選項來解釋轉義序列。
例如,\t 转义序列代表一个制表符。如果您使用 -e 选项并将 \t 打印到控制台,则 \t 将被解释为制表符,而不是被直接打印。
一些最常见的转义序列如下:
Escape Sequence | Function |
\b | backspace |
\t | tab |
\n | new line |
\\ | backslash |
\$ | dollar sign |
运行以下命令将 Hello\tWorld 打印到控制台。
您可以看到 echo 命令将字符串 Hello\tWorld 原样打印出来。

现在,运行以下命令将 Hello\tWorld 打印出来,在其中添加 -e 选项以将 \t 解释为制表符。
请注意下面 Hello 和 World 之间巨大的空格。

在新行中插入字符串
打印长串的字符串会让用户难以阅读其全部内容。幸运的是,\n 选项允许您在字符串中间添加换行符。当向控制台打印多行文本时,此选项经常被使用,可以清晰地显示实际文本。
运行以下命令以打印字符串 Echo command bash\nAnother line,其中 \n 选项将字符串分为两行。
下面,您可以看到 \n 选项将字符串 Another line 放到了新行。

在字符串之间插入垂直制表符
您已经看到 \t 转义序列如何在字符串之间放置水平制表符。但是垂直制表符呢?\v 选项允许您在垂直制表符之间分隔字符串,非常适合制作文本横幅。
当向控制台打印多列文本时,此选项经常被使用,每列文本位于新行上,并且在开头有一个新的制表符空间。
執行以下命令以打印文本 Echo command bash demo,但在每個單詞之間使用垂直標籤(\v)。

基於擴展名打印文件名
如果您正在尋找一種方法來查找具有特定文件類型的文件,則 echo 命令的此功能運作方式相同。echo 命令支持使用通配符字符(*)列出目錄中具有特定擴展名的文件。
1. 執行以下命令以打印當前目錄中所有以 .txt 擴展名結尾的文件。

2. 接下來,執行以下命令以打印當前目錄中所有以 .deb 文件擴展名結尾的文件。

3. 最後,執行以下命令以打印位於 ~/Downloads 目錄中具有 .txt 擴展名的文件。您可以將 ~/Downloads/ 替換為實際文件目錄路徑。
您可以看到 echo 命令支持指定文件所在的目錄路徑。

將輸出寫入文件
當您的命令返回大量輸出時,您幾乎無法在控制台上閱讀所有內容。將輸出寫入文件是個好主意。但是該如何做呢?除了將文本打印到控制台外,echo 命令還支持將輸出直接寫入文件。
運行下面的命令,因為輸出被寫入(>)到一個名為 echo-bash.txt 的文件中,所以不會提供輸出。
請注意,如果 echo-bash.txt 文件已經存在,它將被新內容覆蓋。
現在,運行以下 cat 命令來查看 echo-bash.txt 文件的內容。
正如您下面所見,echo 命令的輸出被寫入到 echo-bash.txt 文件中。

將輸出附加到現有文件
如前所述,> 運算符將現有文件覆蓋為新內容。但是,如果您希望將輸出附加到現有文件而不是覆蓋它,該怎麼辦呢?
請使用兩個 >> 運算符,而不是單個。此功能有助於保留現有內容並將新項目附加到文件末尾。
運行下面的命令將新文本(附加文本)附加(>>)到現有的 echo-bash.txt 文件中。
現在,運行以下 cat 命令來查看 echo-bash.txt 文件的內容。
正如您下面所見,echo 命令的輸出被附加到文件中而不會覆蓋任何內容。

結論
在bash shell中的回声命令是一个简单但强大的工具,可以用多种方式使用。在本教程中,您已经学习了如何使用一些最受欢迎的选项来最大化回声命令的潜力。
现在,将文本打印到控制台不再仅仅是“打印文本”了。您已经了解了如何将输出写入文件、追加输出以及更改每个打印文本的外观。
为什么不选择一些您可以使用回声命令的方式,并将它们写在您的脚本上呢?看看您能想出什么有创意的方式!