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

shell while循环内的变量在循环外部值不能传递

    来源: 互联网  发布时间:2016-11-06

    本文导语:  例如  i=0  while read line cd  do    i=100  done  echo "i="i      #现在程序运行后这里i=的输出为0 而不是100. 如何才能让它输出100呢? 请问怎么把while内部的变量传递到循环外部?如何从子SHELL传到外部呢?该如何...

例如 
i=0 
while read line cd 
do 
  i=100 
done 

echo "i="i      #现在程序运行后这里i=的输出为0 而不是100. 如何才能让它输出100呢?
请问怎么把while内部的变量传递到循环外部?如何从子SHELL传到外部呢?该如何改呢?请提示出代码。



|
子Shell是不能传到父Shell的, 这是因为子进程是在独立的进程空间(Context)运行了. 需要跟父进程通信的话, 得使用进程间通信机制. 不是简单的变量问题.

|
可以传递的嘛。
例子:
#!/bin/sh

i=0

echo "before while:i=$i"

while [[ $i -lt 10 ]]
do
echo "in while:i=$i"
let i=$i+1
done

echo "after while:i=$i"

运行结果如下:
before while:i=0
in while:i=0
in while:i=1
in while:i=2
in while:i=3
in while:i=4
in while:i=5
in while:i=6
in while:i=7
in while:i=8
in while:i=9
after while:i=10

|
1.应该不会存在这种问题

2.建议在脚本前加上set -x,看循环是否执行

3.echo "i="i    有问题

|
i=0 
while read line cd 
do 
  i=100 
done 
echo $i
输出肯定是100
要注意就是当你要使用变量的时候一定要带上$符号

    
 
 

您可能感兴趣的文章:

  • shell:sql问题,如何shell循环将不同表数据写入文件中...
  • shell程序 控制时间循环 !!!!
  • shell中for循环如何实现增量为2
  • unix shell: 如何写在文件中循环查找....请进..
  • shell脚本for循环中如何调用别的程序?
  • 用shell编程,如何循环删除文件?
  • shell for循环
  • 关于在shell中使用循环和条件判断的问题( 内详)
  • shell脚本编程之循环语句学习笔记
  • 关于shell中的while循环的使用,求助
  • shell 循环 expr
  • shell 的 while无限循环问题!
  • 在shell下,如何实现for(i=0;i<100;i++)这样的循环?
  • shell编程,按YYYYMM格式循环输出当月起后100个月?
  • shell循环播放音乐的脚本该怎么写
  • Shell脚本for循环语句简明教程
  • shell 脚本 while循环结构问题,急ing,,,,,,
  • 简单的shell脚本 关于while循环
  • 我写了shell脚本写了个循环,中间用了sleep,一旦运行起来,就杀不掉了
  • 哪位linux高手帮我看看下面这个shell脚本为什么不能进入while循环??
  • shell变量和子shell的问题请教
  • shell编程,如何将变量中的环境变量转换为绝对值
  • 怎么查看自己的shell的环境变量,和root的环境变量,solaris系统
  • 子shell改变父shell定义变量的值
  • gdb下用shell写环境变量的问题
  • 关于shell变量传递问题?
  • 如何查看当前shell的所有环境变量?
  • 请问如何在C语言中获得shell 变量
  • 请教个shell环境变量的问题
  • Shell编程中如何获取环境变量中设置的路径
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • HTML教程 iis7站长之家
  • 急!如何从一个shell文件中传递一个参数到sql文件中,不能用存储过程
  • Shell脚本调用Sql脚本并向其中传递变量
  • (急)shell,sed 关于参数的传递
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • shell脚本,参数传递,应该是字符转义问题.
  • shell和c之间的变量传递问题,请教!
  • shell中读取文件后的变量不能传递出来吗?
  • 如何在C中调用linux shell脚本并传递参数?
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • shell脚本的函数参数传递问题
  • python和shell变量互相传递的几种方法
  • 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新建多个终端 并执行程序


  • 站内导航:


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

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

    浙ICP备11055608号-3