技术解析

shell here document 问题
0
1975-02-25 08:26:10
idczone

如下代码:

1 #! /bin/bash

2 v1=$(cat <

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 参数可以正常输出换行)


因为 v1 里面有换行符,所以就输出换行了; v2 里没有换行符,所以就不会输出换行
echo -e 可以把一些转义符转成对应的实际字符

好吧.貌似确实就是这么简单~_~ 一下没理解过来 谢谢了

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服