当前位置:  技术问答>linux和unix

shell脚本编程问题 求高手解答

    来源: 互联网  发布时间:2016-10-22

    本文导语:  代码如下: #!/bin/bash IFS.OLD=$IFS IFS=$'n' for entry in `cat /etc/passwd` do    echo " Values in $entry"    IFS=:    for value in $entry    do       echo " $value"    done done IFS=$IFS.OLD 问题:在刚开始时,将内部字段分隔...

代码如下:
#!/bin/bash

IFS.OLD=$IFS
IFS=$'n'

for entry in `cat /etc/passwd`
do
   echo " Values in $entry"
   IFS=:
   for value in $entry
   do
      echo " $value"
   done
done

IFS=$IFS.OLD

问题:在刚开始时,将内部字段分隔符设置为换行符,在第一个循环里又将IFS设置为:,为什么当外部循环执行完第一个循环后IFS的值依然是n而不是:,难道在循环内部对变量的改变只是局部的,不会影响到循环外变量的实际值?

谢谢大家

|
在执行第一次循环的时候将IFS设置为“:”了,紧接着执行第二次循环时,IFS应该为“:”,可是此时
IFS又变回了“n”,我就是不明白这是怎么回事
------------------------
其实已经改变了
但是  for entry in `cat /etc/passwd`第一次执行的时候 IFS还是n  而且一次性把文件/etc/passwd的内容都已经读出来了 而你之后修改IFS不会对这个for起作用的

你不信你再加个循环 蓝色的那次循环IFS肯定是:

#!/bin/bash

IFS.OLD=$IFS
IFS=$'n'

for entry in `cat /etc/passwd`
do
  echo " Values in $entry"
  for value in $entry
  do
  echo " $value"
  done
done

for entry in `cat /etc/passwd`
do
  echo " Values in $entry"
  IFS=:
  for value in $entry
  do
  echo " $value"
  done
done

IFS=$IFS.OLD

|

数据已经在缓冲区里了,修改IFS不会影响最外层的循环对缓冲区中数据的重新理解

    
 
 

您可能感兴趣的文章:

  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • Linux C编程一站式学习,高级shell Bash脚本编程指南,
  • 关于shell脚本编程
  • 高手帮帮忙,SHELL脚本编程~~~~~~~~~~~~~~~~~~
  • shell脚本编程 急需!谢谢!
  • shell脚本编程求解? 多谢
  • 帮忙啊,SHELL脚本编程。
  • 用shell脚本编程,怎么实现提取一个文件的一段内容,而且位置不定,行数不定
  • linux~shell编程~请教一个关于如何执行脚本的问题
  • [虚心请教]笔试遇到的shell脚本编程题。
  • 问一个很弱的shell脚本编程问题?
  • 想通过shell脚本编程实现:改写文本文件(完全改写和部分替换)
  • shell脚本编程之case语句学习笔记
  • [虚心请教]笔试遇到的shell脚本编程题,输出结果有点问题
  • shell脚本编程之循环语句学习笔记
  • 推荐以下shell脚本学习,编程的经典书籍
  • 精通unix shell脚本编程中关于while循环的问题!
  • shell脚本编程之if语句学习笔记
  • Linux Shell脚本编程的注意事项
  • Shell脚本编程中常用的数学运算实例
  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值 iis7站长之家
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • shell编程中转义字符替换问题,求高手解答
  • 菜鸟提问,初手中手高手都会解答,关于linux的shell
  • SHELL 求解答
  • 考试题目求解答:如何建立SHELL脚本,运行时挂载WIN的C盘?
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3