Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
silenceeeee
V2EX  ›  Linux

shell here document 问题

  •  
  •   silenceeeee · Nov 15, 2016 · 2150 views
    This topic created in 3517 days ago, the information mentioned may be changed or developed.

    如下代码:

    1 #! /bin/bash

    2 v1=$(cat <<End-of-message

    3 -------------------------------------

    4 This is line 1 of the message. |

    5 This is line 2 of the message. |

    6 This is line 3 of the message. |

    7 This is line 4 of the message. |

    8 This is the last line of the message.

    9 -------------------------------------

    10 End-of-message

    11 )

    12 echo "${v1}"

    13 v2="line1\nline2"

    14 echo "${v2}"

    输出:


    This is line 1 of the message. |

    This is line 2 of the message. |

    This is line 3 of the message. |

    This is line 4 of the message. |

    This is the last line of the message.


    line1\nline2

    疑问:为什么 echo "${v1}"输出内容时会输出换行,而 echo "${v2}"却不会输出换行(加上-e 参数可以正常输出换行)

    2 replies    2016-11-15 10:21:07 +08:00
    lululau
        1
    lululau  
       Nov 15, 2016
    因为 v1 里面有换行符,所以就输出换行了; v2 里没有换行符,所以就不会输出换行

    echo -e 可以把一些转义符转成对应的实际字符
    silenceeeee
        2
    silenceeeee  
    OP
       Nov 15, 2016
    @lululau 好吧.貌似确实就是这么简单~_~ 一下没理解过来 谢谢了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3039 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 11:00 · PVG 19:00 · LAX 04:00 · JFK 07:00
    ♥ Do have faith in what you're doing.