如何在 bash shell 腳本中 echo 一個新行
echo 命令會在末尾自動添加新行,但是,如何只打印出一個空行呢?或者怎樣在輸出內(nèi)容中包含一個新行呢?
可以在 echo 命令中使用 -e 選項,這樣就可以使用換行符 \n 在同一輸出行中打印新行了,如下例子:
其輸出如下:?
下面我們來詳細了解一下。
使用 echo 命令的 -e 選項打印新行
如果當前行的文本已結束,我們往往會新起一行,也就是換行。在大多數(shù)類 Unix 系統(tǒng)中,\n 用于新起一行,它被稱為換行符。
默認情況下,echo 命令禁用反斜杠轉義字符,因此,如果你嘗試使用 \n 轉義序列顯示換行符,會發(fā)現(xiàn)這不起作用,將文本用單引號括起來作為字符串文本也不起作用。?
上面的例子可以看出,輸出與我們期望的不一樣。如果要讓換行符起作用,這就需要用到 -e 選項了,該選項告訴 echo 命令我們希望啟用反斜杠轉義字符:
這樣,才是我們想要的。
下面我們介紹一些其他的方法來顯示換行符。
echo 包含新行的變量
你可以將字符串存儲在 bash 變量中,然后使用 -e 標志對其進行回顯。看下面的例子:?
使用美元符號 $
在 bash 中,美元符號 $ 被稱為擴展字符,它可以在 shell 中引用變量的值。
看下面這段代碼,擴展字符的作用相當于保存一個臨時的值:?
或者,也可以將整個字符串用作“臨時變量”:?
不過,我更喜歡使用 -e 標志。
使用 echo 打印包含新行的內(nèi)容
當你使用 echo 命令打印一段文本的時候,echo 命令會在文本的末尾自動添加一個換行符。
這意味著您可以將多個echo命令鏈接在一起以生成換行。看下面的例子:?
使用 printf 在 bash shell 中打印換行符
printf 是一個命令行工具,它可以將文本打印在終端上,也允許用戶格式化文本。
其用法也很簡單,類似于 echo,但是更加方便??聪旅娴睦樱?
正如我們設想的那樣,printf 沒有使用任何選項,不過連帶換行符也會一起輸出在終端上。
就我個人而言,我更喜歡使用 echo 命令的 -e 選項,或者使用 printf 命令來顯示輸出中的新行。我建議你也這么做,但你可以自由嘗試。