首頁 > shell教程 閱讀:0更新時間:2020-03-28 02:19:07

Shell Here String(內嵌字符串,嵌入式字符串)

Here String 是 Here Document 的一個變種,它的用法如下:

command <<< string

command 是 shell 命令,string 是字符串(它只是一個普通的字符串,并沒有什么特別之處)。

這種寫法告訴 Shell 把 string 部分作為命令需要處理的數據。例如,將小寫字符串轉換為大寫:

[mozhiyan@localhost ~]$ tr a-z A-Z <<< one
ONE

Here String 對于這種發送較短的數據到進程是非常方便的,它比 Here Document 更加簡潔。

雙引號和單引號

一個單詞不需要使用引號包圍,但如果 string 中帶有空格,則必須使用雙引號或者單引號包圍,如下所示:

[mozhiyan@localhost ~]$ tr a-z A-Z <<< "one two three"
ONE TWO THREE


雙引號和單引號是有區別的,雙引號會解析其中的變量(當然不寫引號也會解析),單引號不會,請看下面的代碼:

[mozhiyan@localhost ~]$ var=two
[mozhiyan@localhost ~]$ tr a-z A-Z <<<"one $var there"
ONE TWO THERE
[mozhiyan@localhost ~]$ tr a-z A-Z <<<'one $var there'
ONE $VAR THERE
[mozhiyan@localhost ~]$ tr a-z A-Z <<<one${var}there
ONETWOTHERE


有了引號的包圍,Here String 還可以接收多行字符串作為命令的輸入,如下所示:

[mozhiyan@localhost ~]$ tr a-z A-Z <<<"one two there
> four five six
> seven eight"
ONE TWO THERE
FOUR FIVE SIX
SEVEN EIGHT

總結

與 Here Document 相比,Here String 通常是相當方便的,特別是發送變量內容(而不是文件)到像 grep 或者 sed 這樣的過濾程序時。

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩