zoukankan      html  css  js  c++  java
  • 嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性

    以下这个脚本使用了两个不同的IFS值来解析数据。第一个IFS值解析出/etc/passwd文件中的单独的行。内部for循环接着将IFS值改为冒号,云溪你从/etc/passwd的行中解析出单独的值。

     1 #!/bin/bash
     2 #changing the IFS value
     3 IFS.OLD=$IFS
     4 IFS=$'
    '
     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=$`
    `
    14 done

    注意看第4、8行以及第13行,明明在内层for循环的时候IFS的值已经被改变了,可是,在下一次大循环里的IFS的值还是' '。

    这是否可以说明内层循环和外层循环的变量没有必然联系。可是,IFS不是全局变量吗?

    以上脚本的运行效果如下:

    再有一个问题,注意看上面的运行结果图的test1~test2,然后我们来查一下

    并没有含有test的这个值

    再看看当前目录下的文件

    这些test正是当前目录下的文件

    那么脚本运行结果里的test是哪里来的呢?注意看

    shell把这个当成是通配符了,结果把当前目录下的文件给显示出来了

    最后,特别提醒:第4行的符号是单引号而不是反引号!

  • 相关阅读:
    Linux Ubuntu安装Mysql5.7
    Linux Ubuntu安装maven3.3.9
    Linux Ubuntu安装tomcat9
    Linux Ubuntu安装JDK1.8
    Win10 U盘安装ubuntu16.04 LTS 双系统
    Linux Mysql5.7 常用语句与函数
    在Linux CentOS 6.6上安装Python 2.7.9
    CentOS6下docker的安装和使用
    How to Install Apache Solr 4.5 on CentOS 6.4
    SpringBoot的日志管理
  • 原文地址:https://www.cnblogs.com/fallenmoon/p/6784608.html
Copyright © 2011-2022 走看看