首页 > 代码库 > 嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性
嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性
以下这个脚本使用了两个不同的IFS值来解析数据。第一个IFS值解析出/etc/passwd文件中的单独的行。内部for循环接着将IFS值改为冒号,云溪你从/etc/passwd的行中解析出单独的值。
1 #!/bin/bash 2 #changing the IFS value 3 IFS.OLD=$IFS 4 IFS=$‘\n‘ 5 for entry in $(cat /etc/passwd) 6 do 7 echo "Value in $entry -" 8 IFS=: 9 for value in $entry 10 do 11 echo " $value" 12 done 13 # IFS=$`\n` 14 done
注意看第4、8行以及第13行,明明在内层for循环的时候IFS的值已经被改变了,可是,在下一次大循环里的IFS的值还是‘\n‘。
这是否可以说明内层循环和外层循环的变量没有必然联系。可是,IFS不是全局变量吗?
以上脚本的运行效果如下:
再有一个问题,注意看上面的运行结果图的test1~test2,然后我们来查一下
并没有含有test的这个值
再看看当前目录下的文件
这些test正是当前目录下的文件
那么脚本运行结果里的test是哪里来的呢?注意看
shell把这个当成是通配符了,结果把当前目录下的文件给显示出来了
最后,特别提醒:第4行的符号是单引号而不是反引号!
嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。