當前位置: 首頁>>技術教程>>正文


Bash腳本:如何在Linux Shell上輸出和格式化文本

Bash腳本非常流行,是最簡單的腳本語言。與任何其他編程或腳本語言一樣,您需要在終端上打印文本,例如當您要輸出文件的內容或檢查變量的值時。程序員還通過在控製台上打印其變量的值來調試其應用程序。因此,在我們深入研究bash腳本(這將是另一篇教程)之前,讓我們看一下在終端中輸出文本的不同方式。

為了在終端上輸出文本,Echo是您需要了解的最重要的命令。顧名思義,echo在終端的標準輸出上顯示數字或字符串。下表還顯示了許多可用選項。

選項 定義
-n 不要打印行尾的換行符
-E 禁用對反斜杠(back-slash)轉義字符的解釋
-e 啟用反斜杠轉義的解釋
\a 警報聲/提示音符
\b 退格符
\c 禁止尾隨換行符,截斷後續字符串
\e 轉義符
\f 換頁符
\\ 反斜線符
\n 換行符
\r 回車符
\t 水平製表符
\v 垂直製表符

根據Linux文檔,以下是echo命令的語法。

echo [option(s)] [string(s)]

接下來,我們將看到在終端上輸出文本的不同方式。

發送文本到標準輸出

要在終端上輸出任何字符串,數字或文本,請鍵入以下命令,然後按Enter。

echo "Hello World"

以下輸出將顯示在終端上

Send text to stdout with echo command

打印變量

讓我們聲明一個變量,並將其值顯示在終端上。假設x是一個我們已初始化為100的變量。

x=100

現在,我們將在終端上輸出變量的值。

echo x

將在終端上打印100。同樣,您也可以將字符串存儲在變量中並在終端上輸出。

Print content of a variable

 

刪除單詞之間的空格

這是我最喜歡的echo選項之一,因為它消除了句子中不同單詞之間的所有空格並將它們聯合在一起。在此功能中,我們將使用表1中提到的兩個選項。

echo -e "Hello \bmy \bname \bis \bjohn \bDoe"

從上麵的示例中可以看到,我們正在啟用反斜杠轉義的解釋以及添加退格符。輸出如下:

Remove space between words with backspace

在新行中輸出單詞

當您使用bash腳本時,此echo選項非常有用。通常,完成後,您需要移至下一行。因此,這是用於此目的的最佳選擇。

echo -e "Hello \nmy \nname \nis \nJohn \nDoe"

輸出將在單獨的行中顯示每個單詞,如下麵的運行截圖所示。

Add newlines to the text output

帶聲音輸出文本

輸出帶有鈴聲或警報的文本的簡單選項。請鍵入以下命令。

echo -e "Hello \amy name is John Doe"

確保係統的音量足夠大,以使您能夠聽到在終端上輸出文本時發出的微小鈴聲。

刪除尾部換行符

echo的另一個選擇是刪除尾隨的換行符,以便所有內容都輸出在同一行上。為此,我們使用“\c”選項,如下圖所示。

echo -e "Hello my name \cis John Doe"

顯示以下輸出,\c之後的字符串被截斷不顯示。

Remove trailing newline

將回車添加到輸出

要在輸出中添加特定的回車符,我們為此提供了“\r”選項。

echo -e "Hello my name \ris John Doe"

在終端上顯示以下輸出。注:隻回車不換行,相當於輸出\r之後的。

Add a Carriage Return to the output

在輸出中使用製表符TAB

在終端上打印輸出時,您也可以添加水平和垂直製表符。這對於獲得更清潔的輸出非常有用。要添加水平製表符,您必須添加“\t”,對於垂直標簽,請添加“\v”。我們將為2中情況分別做一個樣本,然後再合並來看看。

echo -e "Hello my name \tis John Doe"

該命令的輸出如下所示

Use tabs to format the text output

echo -e "Hello my name \vis John Doe"

該命令的輸出如下所示

Use \v in bash output

現在,我們將把這2個例子用一個句子結合起來。

echo -e "Hello my name \vis John Doe. Hello! My name is \tJane Doe"

以下內容將打印在終端上。

Advanced formatting example

以上,就是可用於在終端上打印文本的所有選項。

參考資料

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/4233.html,未經允許,請勿轉載。