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%的其他從業者!