限制字串
heredoc 使用 limitstring 來確定何時停止使用輸入。終止限制字串必須
- 在一條線的開頭。
- 是行中唯一的文字注意: 如果你使用
<<-
,limitstring 可以以 tabs 為字首\t
正確:
cat <<limitstring
line 1
line 2
limitstring
這將輸出:
line 1 line 2
使用不正確:
cat <<limitstring
line 1
line 2
limitstring
由於最後一行的 limitstring
並不完全在行的開頭,因此 shell 將繼續等待進一步的輸入,直到它看到以 limitstring
開頭並且不包含任何其他內容的行。只有這樣它才會停止等待輸入,然後繼續將 here-document 傳遞給 cat
命令。
請注意,當你使用連字元為初始限制字串新增字首時,將在解析之前刪除該行開頭的所有選項卡,因此可以使用製表符縮排資料和限制字串(以便於在 shell 指令碼中讀取)。
cat <<-limitstring
line 1 has a tab each before the words line and has
line 2 has two leading tabs
limitstring
會產生
line 1 has a tab each before the words line and has line 2 has two leading tabs
刪除了前導標籤(但不包括內部標籤)。