嵌套循环结合修改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行的符号是单引号而不是反引号!

时间: 2024-10-04 09:48:15

嵌套循环结合修改IFS环境变量遍历文件数据中IFS的修改一致性的相关文章

Linux环境变量设置文件

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统是加载的环境变量.所以管理环境变量的文件也分为系统级和用户级的. 系统级: /etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登陆时,该文件被执行.并从 /etc/profile.d 目录的配置文件中搜集shell的设置.所以如果对 /etc/porfile 有修改,必须重启机器修改才会生效,此修改对每个用户都生效. /etc/bashrc

linux查看和修改PATH环境变量的方法

linux查看和修改PATH环境变量的方法 查看PATH:echo $PATH以添加mongodb server为列修改方法一:export PATH=/usr/local/mongodb/bin:$PATH//配置完后可以通过echo $PATH查看配置结果.生效方法:立即生效有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置用户局限:仅对当前用户 修改方法二:通过修改.bashrc文件:vim ~/.bashrc //在最后一行添上:export PAT

linux学习笔记入门之环境变量和文件查找

环境变量与文件查找 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值.字符或者字符串等等数据类型.Shell 中的变量也基本如此,有不同类型(但不用专门指定类型名),可

linux环境变量与文件查找

整理来自 https://www.shiyanlou.com/courses/running/60 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录数值.字符或者字符串等等数据类型.Shell 中

实验楼 环境变量与文件查找

一.环境变量 1. 变量 使用 declare 命令创建一个变量名为 tmp 的变量 declare tmp 使用 = 号赋值运算符,将变量 tmp 赋值为 shiyanlou tmp=shiyanlou 读取变量的值,使用 echo 命令和 $ 符号($ 符号用于表示引用一个变量的值,初学者经常忘记输入): echo $tmp 2. 环境变量 Shell 的环境变量作用于自身和它的子进程.在所有的 UNIX 和类 UNIX 系统中,每个进程都有其各自的环境变量设置,且默认情况下,当一个进程被创

1.5环境变量与文件查找(学习过程)

环境变量与文件查找 实验介绍 本节实验介绍环境变量的作用与用法,及几种搜索文件的方法.学会这些技巧高效地使用 Linux. 一.环境变量 1.变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中.通常变量与值是一对一的关系,可以通过表达式读取它的值赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,用于分别记录

[转]Linux下修改/设置环境变量JAVA_HOME

1. 永久修改,对所有用户有效  # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/myuser/jdk1.7.0_03    export PATH = $JAVA_HOME/bin:$PATH     export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar [注]:修改文件后如果想马上生效,还要运行 #s

怎样修改Windows7环境变量

在使用电脑的时候要运行某些特定的应用程序时需要修改系统的环境变量,例如安装JAVA时我们就需要配置系统的环境变量.那什么是环境变量呢?环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等.这点有点类似于DOS时期的默认路径,当你运行某些程序时除了在当前文件夹中寻找外,还会到设置的默认路径中去查找.简单地说这里的“Path”就是一个变量,里面存储了一些常用命令所存放的目录路径.这里我们就来跟大家介绍一下,Windows7下如何修改环境变量. 点击“我

环境变量和文件查找&文件打包与解压缩

环境变量和文件查找 介绍环境变量的作用与用法 及几种搜索文件的方法 学会这些技巧可以高效地使用 Linux 知识点:环境变量的设置 环境变量的修改 环境变量 要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中,通常变量与值是一对一的关系,可以通过表达式读取它的值并赋值给其它变量,也可以直接指定数值赋值给任意变量.为了便于运算和处理,大部分的编程语言会区分变量的类型,