shell中的特殊变量IFS的使用,以及其值为$'\n'与'\n'时的区别。
2018-01-30 16:11
711 查看
在shell中使用到for循环时,是通过IFS同样也是来定义分隔符。如果要指定多个IFS字符,只要将他们在赋值行串起来就行。如下:
这个赋值会将换行符、冒号、分号和双引号作为字段分隔符。如何使用 IFS 字符解析数据没有任何限制。
那么下面三个的区别是什么呢?
测试如下:
(文件log.txt)
(测试用shell1)
(测试用shell2)
IFS=$'\n':;"
这个赋值会将换行符、冒号、分号和双引号作为字段分隔符。如何使用 IFS 字符解析数据没有任何限制。
那么下面三个的区别是什么呢?
IFS='\n' //将字符\和字符n作为IFS的换行符。 IFS='\n' //与上面一样。 IFS=$'\n' //正真的使用换行符做为字段分隔符。 //如果IFS='\n':;" //这个赋值会将反斜杠、n、冒号、分号和双引号作为字段分隔符。
测试如下:
(文件log.txt)
hello \world this is n.jack are you n or y
(测试用shell1)
#!/bin/bash
str=`cat log.txt`
IFS=$'\n'
for word in $str; do
echo $word
done
/**
输出:
hello \world this is n.jack are you n or y
**/
(测试用shell2)
#!/bin/bash str=`cat log.txt` IFS='\n' for word in $str; do echo $word done /** 输出: hello world this is .jack are you or y **/
相关文章推荐
- shell环境变量以及set,env,export的区别
- shell scripts for 循环中变量赋值 以及 shell中sed的使用
- shell脚本中for、while和do的使用以及区别
- Shell变量名使用的特殊字符
- shell中的特殊变量IFS
- shell环境变量以及set,env,export的区别
- shell环境变量以及set,env,export的区别
- Jenkins可用环境变量列表以及环境变量的使用(Shell/Command/Maven/Ant)
- shell变量以及如何使用变量
- shell环境变量以及set,env,export的区别
- Shell环境变量以及set,env,export的区别
- Shell变量名使用的特殊字符 [转]
- shell中的特殊变量IFS(转)
- Shell特殊变量:$*和$@的区别
- 嵌入式 shell相关经典解释如变量以及赋值和特殊符号
- Perl的system后使用单引号和双引号以及其中包含变量的区别
- shell 脚本中的特殊变量 以及 shell 脚本的调试
- shell脚本的使用---特殊变量及脚本的综合使用
- shell脚本执行命令 . 和sh 和 source 和 ./ 的使用以及区别
- shell环境变量以及set,env,export的区别