LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 815|回复: 2

IFS的两种赋值的区别~

[复制链接]
发表于 2008-3-31 20:15:52 | 显示全部楼层 |阅读模式
命令如下:(试验环境FREEBSD和Fedora)
-bash-3.1$ IFS=' \t\n'
-bash-3.1$ set  ¦ grep IFS
IFS=' \t\n'
但是如果我们这样设置,命令如下:
-bash-3.1$ IFS=$' \t\n'
-bash-3.1$ set  ¦ grep IFS
IFS=$' \t\n'

我发现IFS=' \t\n'和IFS=$' \t\n'的效果是一样的,也就是说默认分隔符都是空格,TAb和换行符。为什么后一种设置比前一种的变量多一个$符号,却是同样的作用呢?$符号有什么特别的作用吗?
发表于 2008-3-31 23:32:19 | 显示全部楼层
我这样说你就明白了。

echo -e "\nhello world\n"
<=>
echo $'\nhello world\n'

应该是这样吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-1 00:13:30 | 显示全部楼层
Post by sieur;1833339
我这样说你就明白了。

echo -e "\nhello world\n"
<=>
echo $'\nhello world\n'

应该是这样吧?


也就是说:echo -e " \t\n" <==> echo $' \t\n'

也就是说这里IFS的变量值设置成第二种格式,仅仅是为了方便echo不用加入-e选项而设置的吗?有没有其它的作用?
非常感谢sieur的回答!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表