如何在linux上使用echo命令

echo命令非常適合將格式化文字寫入終端視窗。它不一定是靜態文字。它可以包括shell變數、檔名和目錄。您還可以重定向echo以建立文字檔案和日誌檔案。按照這個簡單的指南來了解如何。...

echo命令非常適合將格式化文字寫入終端視窗。它不一定是靜態文字。它可以包括shell變數、檔名和目錄。您還可以重定向echo以建立文字檔案和日誌檔案。按照這個簡單的指南來了解如何。

回聲重複你讓它重複的東西

宙斯喜歡離開奧林匹斯山,與美麗的仙女交往。在一次旅行中,他告訴一個叫埃科的山裡仙女,如果他的妻子赫拉跟著他,他就要攔住她。赫拉確實是來找宙斯的,埃科盡她所能讓赫拉保持對話。最後,赫拉發了脾氣,詛咒可憐的埃科,讓她只重複別人說的最後一句話。赫拉追上宙斯時對宙斯做了什麼,誰也猜不到。

而這,在很大程度上,是回聲的命運。它重複它被要求重複的東西。這是一個簡單的函式,但卻是一個至關重要的函式。例如,如果沒有echo,我們將無法從shell指令碼獲得可見的輸出。

雖然沒有大量的鐘聲和口哨聲,但echo很有可能擁有一些你不知道或忘記的功能。

回聲?回聲!

大多數Linux系統提供兩個版本的echo。bashshell內建了自己的echo,還有一個二進位制可執行版本的echo。

透過使用以下命令,我們可以看到兩個不同的版本:

type echo whereis echo

如何在linux上使用echo命令

type命令告訴我們作為引數傳遞給它的命令是shell內建的、二進位制可執行的、別名還是函式。它向我們報告回聲是一個貝殼內建。

一旦找到答案,type就停止尋找進一步的匹配項。所以它不會告訴我們系統中是否存在其他同名命令。但它確實告訴我們它最先找到的是哪一個。這是我們發出命令時預設使用的命令。

whereis命令查詢二進位制可執行檔案、原始碼以及作為命令列引數傳遞給它的命令的手冊頁。它不尋找shell內建,因為它們沒有單獨的二進位制可執行檔案。它們是Bash可執行檔案不可分割的一部分。

whereis命令報告echo是位於/bin目錄中的二進位制可執行檔案。

要使用該版本的echo,您需要透過在命令列上提供可執行檔案的路徑來顯式呼叫它:

/bin/echo --version

如何在linux上使用echo命令

shell內建不知道--version命令列引數是什麼,它只是在終端視窗中重複它:

echo --version

如何在linux上使用echo命令

這裡顯示的示例都使用bashshell中echo的預設版本。

向終端寫入文字

要將簡單的文字字串寫入終端視窗,請鍵入echo和要顯示的字串:

echo My name is Dave.

如何在linux上使用echo命令

課文為我們重複。但當你做實驗時,你很快就會發現事情會變得稍微複雜一些。看看這個例子:

echo My name is Dave and I'm a geek.

如何在linux上使用echo命令

終端視窗顯示一個>標誌,並坐在那裡等待。Ctrl+C將返回命令提示符。那裡發生了什麼?

“I'm”這個詞中的單引號或撇號表示困惑。它將單引號解釋為引用的文字部分的開始。因為它沒有檢測到一個結束的單引號,echo正在等待更多的輸入。它希望進一步的輸入包括它所等待的丟失的單引號。

要在字串中包含單引號,最簡單的解決方案是將整個字串用雙引號括起來:

echo "My name is Dave and I'm a geek."

如何在linux上使用echo命令

將文字用雙引號括起來是一個很好的建議。在指令碼中,它清楚地限定了要傳遞給echo的引數。這使得閱讀和除錯指令碼更加容易。

如果要在文字字串中包含雙引號字元怎麼辦?很簡單,只要在雙引號前面加一個反斜槓\就行了(它們之間沒有空格)。

echo "My name is Dave and I'm a \"geek.\""

如何在linux上使用echo命令

這將“geek”一詞用雙引號括起來。稍後我們將看到更多這些反斜槓跳脫字元。

對echo使用變數

到目前為止,我們一直在向終端視窗寫入預定義的文字。我們可以使用帶有echo的變數來生成更動態的輸出,並透過shell將值**其中。我們可以用這個命令定義一個簡單的變數:

my_name="Dave"

已經建立了一個名為my\ u name的變數。我們可以在傳遞給echo的字串中使用變數名,變數的值將被寫入終端視窗。您必須在變數名前面加上美元符號$,以便讓echo知道它是一個變數。

有一個警告。如果你把你的字串用單引號括起來,echo會按字面意思處理一切。要顯示變數值而不是變數名稱,請使用雙引號。

echo 'My name is $my_name' echo "My name is $my_name"

如何在linux上使用echo命令

有點貼切,值得重複:

  • 使用單引號會導致文字以文字方式寫入終端視窗。
  • 使用雙引號會導致解釋變數(也稱為變數展開),並將值寫入終端視窗。

相關:如何在Bash中使用變數

對echo使用命令

我們可以使用帶有echo的命令,並將其輸出合併到寫入終端視窗的字串中。我們必須使用美元符號$,就像命令是一個變數一樣,並將整個命令用括號括起來。

我們將使用date命令。其中一個技巧是在將命令與echo一起使用之前,先單獨使用命令。這樣,如果命令的語法有問題,在將其包含在echo命令中之前,您可以識別並更正它。然後,如果echo命令沒有達到預期的效果,您就會知道問題一定出在echo語法上,因為您已經證明了命令的語法。

因此,在終端視窗中嘗試以下操作:

date +%D

如何在linux上使用echo命令

而且,如果我們滿足於從date命令獲得我們期望的結果,我們將把它整合到echo命令中:

echo "Today's date is: $(date +%D)"

如何在linux上使用echo命令

請注意,命令位於括號內,美元符號$緊跟在第一個括號之前。

使用echo格式化文字

e(啟用反斜槓轉義)選項允許我們使用一些反斜槓跳脫字元來更改文字的佈局。以下是我們可以使用的反斜槓跳脫字元:

  • \a:警報(歷史上稱為BEL)。這將生成預設的警報聲音。
  • \寫一個退格字元。
  • \c:放棄任何進一步的輸出。
  • \寫一個轉義符。
  • \f:寫一個換頁字元。
  • \n:寫一行新的。
  • \r:寫回車。
  • \t:寫一個水平標籤。
  • \v:寫入垂直選項卡。
  • \\:寫入反斜槓字元。

讓我們使用其中的一些,看看它們能做什麼。

echo -e "This is a long line of text\nsplit across three lines\nwith\ttabs\ton\tthe\tthird\tline"

如何在linux上使用echo命令

文字被拆分為一個新行,在其中使用了\n字元,並在其中**一個製表符。

echo -e "Here\vare\vvertical\vtabs"

如何在linux上使用echo命令

與新行字元一樣,垂直製表符將文字移動到下面的行。但是,與新行字元不同,垂直製表符不會從第0列開始新行。它使用當前列。

\b退格字元將游標移回一個字元。如果有更多文字要寫入終端,則該文字將覆蓋上一個字元。

echo -e "123\b4"

如何在linux上使用echo命令

“3”被“4”改寫了。

\r回車符使echo返回到當前行的開頭,並從第0列開始寫入更多的文字。

echo -e "123\r456"

如何在linux上使用echo命令

“123”字元被“456”字元覆蓋。

\a警報字元將產生一個可聽見的“嗶嗶聲”。它使用當前主題的預設警報聲音。

echo -e "Make a bleep\a"

如何在linux上使用echo命令

-n(無換行符)選項不是反斜槓轉義序列,但它確實會影響文字佈局的外觀,因此我們將在這裡討論它。它防止echo在文字末尾新增換行符。命令提示符直接出現在寫入終端視窗的文字之後。

echo -n "no final newline"

如何在linux上使用echo命令

對檔案和目錄使用echo

你可以用echo作為窮人版的ls。當您使用這樣的echo時,您的選項非常少。如果您需要任何型別的保真度或精細控制,最好使用ls及其大量選項。

此命令列出當前目錄中的所有檔案和目錄:

echo *

此命令列出當前目錄中名稱以“D”開頭的所有檔案和目錄:

echo D*

此命令列出當前目錄中的所有“.desktop”檔案:

echo *.desktop

如何在linux上使用echo命令

是 啊。這不是在玩弄echo的長處。使用ls。

使用echo寫入檔案

我們可以重定向echo的輸出,或者建立文字檔案,或者寫入現有的文字檔案。

如果使用>重定向運算子,則會在檔案不存在時建立該檔案。如果檔案確實存在,echo的輸出將新增到檔案的開頭,覆蓋以前的任何內容。

如果使用>>重定向運算子,則會在檔案不存在時建立該檔案。echo的輸出被新增到檔案的末尾,並且不會覆蓋檔案的任何現有內容。

echo "Creating a new file." > sample.txt echo "Adding to the file." >> sample.txt cat sample.txt

如何在linux上使用echo命令

第一個命令將建立一個新檔案,並將文字**其中。第二個命令在檔案底部新增一行文字。cat命令向終端視窗顯示檔案的內容。

當然,我們可以包含變數來向檔案中新增一些有用的資訊。如果檔案是一個日誌檔案,我們可能需要新增一個時間戳。我們可以用下一個命令。

請注意date命令引數周圍的單引號。它們防止引數之間的空格被解釋為引數列表的結尾。它們確保引數正確地傳遞到當前日期。

echo "Logfile started: $(date +'%D %T')" > logfile.txt cat logfile.txt

如何在linux上使用echo命令

我們的日誌檔案是為我們建立的,cat告訴我們日期戳和時間戳都新增到了日誌檔案中。

相關:Linux上的stdin、stdout和stderr是什麼?

那是echo的劇目

一個簡單的命令,但不可或缺。如果它不存在,我們就得發明它。

畢竟,宙斯的惡作劇有一些好處。

  • 發表於 2021-04-03 00:31
  • 閱讀 ( 54 )
  • 分類:網際網路

你可能感興趣的文章

linux正在吃掉你的公羊嗎?如何管理你的記憶

...記憶體。為了理解到底發生了什麼,我們必須看看Linux是如何管理記憶體的。 ...

  • 發佈於 2021-03-23 08:31
  • 閲讀 ( 58 )

啟動linux的9個基本命令

... 如何在linux下開啟終端 ...

  • 發佈於 2021-03-26 18:33
  • 閲讀 ( 59 )

如何在linux中建立新檔案

Linux中有幾種不同的應用程式和命令可以為您建立新檔案,即使不啟動應用程式。使用哪種方法取決於檔案的用途。讓我們看看這些選項,這樣您就可以知道哪一個對您最有用。 ...

  • 發佈於 2021-03-28 22:06
  • 閲讀 ( 57 )

關於linux中bash for loops的所有知識

... 第一行告訴執行這個程式的人如何執行它(即使用bash直譯器)。第二個命令與您在命令列中輸入的任何其他命令一樣。將該檔案另存為hello_世界.sh,然後: ...

  • 發佈於 2021-03-29 06:22
  • 閲讀 ( 59 )

如何使用受限shell來限制linux使用者可以做什麼

...改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下啟動。在本文中,我們將...

  • 發佈於 2021-03-31 10:57
  • 閲讀 ( 57 )

如何使用shopt定製bashshell

...shshell的行為,您可以控制超過50個設定。我們將向您展示如何按照您喜歡的方式定製您的Linux系統。 shopt內建 shopt內建是bashshell所有版本的一部分,因此不需要安裝任何東西。多年來,shopt提供的選項數量穩步增加。所以,Bash...

  • 發佈於 2021-04-01 12:30
  • 閲讀 ( 60 )

如何使用chsh在linux上更改預設shell

Bash不是唯一的Linux shell。很容易嘗試其他的shell,比如非常流行的Zsh。找到一個您喜歡的shell後,使用chsh命令將其設定為預設shell。我們會教你怎麼做。 為什麼貝殼很重要 shell位於您和作業系統之間。它在終端視窗內提供環境...

  • 發佈於 2021-04-02 06:04
  • 閲讀 ( 66 )

如何在linux上的bash中設定環境變數

Linux上有多種型別的環境變數。瞭解如何檢視它們,為本地和遠端登入建立它們,並使它們在重新啟動後仍然有效。 環境變數的工作原理 啟動終端視窗及其內部的shell時,會引用一組變數,以確保shell配置正確。這些變數還確...

  • 發佈於 2021-04-02 06:44
  • 閲讀 ( 58 )

如何在linux中向$path新增目錄

...但這並沒有什麼不好的地方。我們將解釋它的作用,以及如何調整它。 什麼是$path,它是如何工作的($path on linux, and how does it work)? 當您在終端視窗中鍵入一個命令並按Enter鍵時,您甚至在執行命令之前就開始了大量的活動。 B...

  • 發佈於 2021-04-02 14:04
  • 閲讀 ( 44 )

如何在linux上使用grep命令

...列表(不考慮年份),按檔案大小的升序排列。 相關:如何在Linux上使用管道 格雷普:少了指揮權,多了一個盟友 grep是一個非常好的工具,您可以隨時使用。它可以追溯到1974年,現在仍然很強大,因為我們需要它所做的,沒...

  • 發佈於 2021-04-02 17:23
  • 閲讀 ( 46 )
ViV的騎士
ViV的騎士

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦