在Bash(或其他shell)中,如何打印具有多行值的環境變量?在shell中打印一個帶有多行值的變量?
text='line1
line2'
我知道一個簡單的平常echo $text
將無法工作開箱。 會有一些$ IFS調整幫助?
我目前的解決方法是類似於ruby -e 'print ENV["text"]'
。 這可以在純貝殼中完成嗎?我想知道如果env
命令會採取一個未解決的var名稱,但它似乎並不。
在Bash(或其他shell)中,如何打印具有多行值的環境變量?在shell中打印一個帶有多行值的變量?
text='line1
line2'
我知道一個簡單的平常echo $text
將無法工作開箱。 會有一些$ IFS調整幫助?
我目前的解決方法是類似於ruby -e 'print ENV["text"]'
。 這可以在純貝殼中完成嗎?我想知道如果env
命令會採取一個未解決的var名稱,但它似乎並不。
export TEST="A\nB\nC"
echo $TEST
給輸出:
A\nB\nC
但:
echo -e $TEST
A
B
C
所以,答案似乎是 '-e' 參數呼應,假設我正確理解你的問題。
謝謝,這的確不錯..但是在我的情況下,var包含一個真正的LF字符而不是轉義序列。現在澄清這個問題。 – inger
爲什麼向後彎曲倒退?只要做'text ='line1 line2''(因此分配跨越兩個文字行),或者如果您對受限的可移植性感到滿意,可以使用'text = $'line1 \ nline2''。 –
與bash,將文本轉換爲變量的方式是'text = $'line1 \ nline2'' –
@WilliamPursell我知道這比我先嚐試heredoc更簡單,但是這並沒有工作..但當然,簡單的多行字符串更簡單..它只是非常晚,刷新我的bash記憶。謝謝。 – inger