如何在文件中輸入以下內容:
Hi
abcd
我嘗試使用echo "Hi\nabcd" >> ab.txt
,但在文件中它是按原樣編寫的(\n
包含 ,而不是換行符)
答案1
您需要告訴echo
以遵循轉義序列。
echo -e "Hi\nabcd" >> ab.txt
答案2
答案3
我建議使用bash shell 功能稱為此處文件。似乎是實現您所描述的最優雅的形式。最重要的是,多行內容看起來與輸出檔案中的內容完全相同(而不是不可讀的、長的、\n
分隔的字串)。
cat > ab.txt <<EOL
Hi
abcd
EOL
這裡EOL
的標記告訴 shell 應該尋找什麼來找到結尾這裡的文檔。你可以任意選擇一個詞,讓你選擇的東西不會剛好與這裡的文檔的內容本身。好處是你可以用 shell${VARIABLES}
來替換。如果您不希望發生這種情況,您可以隨時用引號 ( ) 將開頭(僅開頭一個!)標記詞括起來'
以防止這種情況。
我個人在設定環境時在初始化腳本中經常使用它來建立小配置文件,例如:
cat > ~/.screenrc <<END_OF_HEREDOC_MARKER
defscrollback ${MAX_LINES}
END_OF_HEREDOC_MARKER
答案4
您也可以用引用玩遊戲:
% echo 'Hi
> abcd' >> ab.txt
您可以透過在「Hi」後按下「Enter」鍵在 bash 中輸入該內容。 Bash 使用“>”作為我的命令繼續提示符。由於某種原因,我無法逃避帶有反斜杠的單獨返回。