2010-11-28 44 views
4

所以它似乎read命令只需要1行,如果我想輸入一個帶換行符的短段怎麼辦?我會用什麼?我認爲有一個命令在按ctrl + d時結束,所以它的返回鍵用於開始一個新的段落。Unix:我如何讀取多行?

回答

9
text=$(cat) 

允許您使用換行符鍵入文本,以行開始處的Ctrl-d結尾。

在猛砸等同,而無需使用外部工具是

text=$(</dev/stdin) 
+0

+1。儘管我更喜歡Tobu建議的輸入方法,但這更像是OP想要的。 – progo 2010-11-28 10:39:47

5

您可以將用戶拖放到他們最喜歡的編輯器中,並附帶註釋文本,說明需要哪些信息以及如何進行分段符。這就是大多數vcs提交的工作方式。請參閱ldapvi瞭解這種界面的更復雜的示例。

+0

這是最聰明的所有三個。投入越長,錯誤就越多。當輸入多個單詞時,啓動`$ EDITOR`會有很大幫助。 – progo 2010-11-28 10:37:07

0

如果換行符在結果中不是必需的,則可以使用'\'字符在輸入中轉義換行符。