【问题标题】:echo add a newline between two stringsecho 在两个字符串之间添加换行符
【发布时间】:2016-04-02 12:19:47
【问题描述】:

我终于在 bash 中的两个字符串之间回显了一个新行。
加上回显包含 \n 的字符串。 作为

m=$'line1\nline2'  
n=line3  
echo "$m" ""$'\n'"" $n  

给我

line1  
line2  
 line3  

(为了更清楚,我在 $n 之前留下了空格。)
有没有更好的方法?

【问题讨论】:

    标签: string bash echo newline quotes


    【解决方案1】:

    只需使用printf 即可完全控制何时有新行:

    printf "%s\n%s" "$var1" "$var2"
    #---------^^
    

    例如:

    $ s1="hello how are you"
    $ s2="I am fine thanks" 
    $ printf "%s\n%s\n" "$s1" "$s2"
    hello how are you
    I am fine thanks
    

    【讨论】:

      【解决方案2】:

      根据您的外壳,echo 带有一个打印转义字符的-e 标志。

      echo -e "Hello\nWorld"
      

      或者,您可以使用printf,但它不提供自己的尾随换行符,您需要确保占位符不会出现在您的文本中:

      printf "Hello\nWorld\n"
      

      【讨论】:

        猜你喜欢
        • 2017-07-31
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多