消息关闭
    暂无新消息!

shell 换行问题

问题作者 : 肥突突2017-08-12发布
第一个问题:

# echo "1234
5678"

输出:
1234
5678

#echo "1234\n5678"
输出 1234\n5678 

\n 没有被转义

第二个问题:
在for循环中,有个IFS设置for的分隔符

(1)IFS="\n" ;
(2).IFS=$'\n' 
上面两种方式设置 IFS为行换,但只有第二个有效,加个$就可以进行转义,不加就不转义

那么
将问题 1 中的 echo 输出改为 echo"1234$\n5678"    输出却为 1234$\n5678  怎么就没有换行呢? \n  和$\n 应该是怎么用才合适?

5个回答

︿ 2
楼主记住自己使用的实际情况就好了,没必要纠结其实现,原理无非就是解不解析\n的问题
︿ 1
为什么 $"\n",$"\\n" 不行呢,$'\n' 可以,能解释下这个处理的过程吗
︿ 0
这个系统实现有关的吧,我用!/bin/sh的话,\n会被换行,使用!/bin/bash的话,\n不会换行
︿ 0
\ 完全转译
""部分转译 \ ` ! $ 
'' 完全转译
这应该和转译有关吧,