小编Wol*_*ble的帖子

bash中的Printf示例不会创建换行符

与工作printf在bash脚本,加入无空格后"\n"不创建换行符,而添加的空间中形成一个换行符,E.G.:

  1. 之后没有空间 "\n"

    NewLine=`printf "\n"`
    echo -e "Firstline${NewLine}Lastline"
    
    Run Code Online (Sandbox Code Playgroud)

    结果:

    FirstlineLastline
    
    Run Code Online (Sandbox Code Playgroud)
  2. 之后的空间 "\n "

    NewLine=`printf "\n "`
    echo -e "Firstline${NewLine}Lastline"
    
    Run Code Online (Sandbox Code Playgroud)

    结果:

    Firstline
     Lastline
    
    Run Code Online (Sandbox Code Playgroud)

问题:为什么不1.创建以下结果:

Firstline 
Lastline
Run Code Online (Sandbox Code Playgroud)

我知道这个特定的问题本来可以使用其他技术,但我想关注为什么1.不起作用.

编辑:当使用echo而不是printf时,我得到了预期的结果,但为什么printf的工作方式不同?

    NewLine=`echo "\n"`
    echo -e "Firstline${NewLine}Lastline"
Run Code Online (Sandbox Code Playgroud)

结果:

    Firstline
    Lastline
Run Code Online (Sandbox Code Playgroud)

bash printf

24
推荐指数
3
解决办法
6万
查看次数

标签 统计

bash ×1

printf ×1