`
tcspecial
  • 浏览: 897965 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

shell 循环变量作用范围

    博客分类:
  • OS
阅读更多
#!/bin/sh

test()
{
	RetVal=0

	cat 1.log | while read line
	do
		if[ "$line" == "2" ]
		then
			RetVal=1
		fi
	done
	
	return $RetVal
}

 

很容易写出上述代码,上述代码返回值始终为0。虽然执行了RetVal=1这条语句,但是一出while循环,变量值又变成0了。

这是因为管道是在子shell中执行的,子shell中的变量对于子shell之外的代码块来说, 是不可见的. 当然, 父进程也不能访问

这些变量, 父进程指的是产生这个子shell的shell. 事实上, 这些变量都是局部变量。

 

#正确做法
test()
{
	RetVal=0

	while read line
	do
		if[ "$line" == "2" ]
		then
			RetVal=1
		fi
	done < 1.log
	
	return $RetVal
}

 

分享到:
评论

相关推荐

    浅谈shell循环中变量的作用域问题

    最近实现了一个shell脚本,功能简单来说就是从文件中按行读取然后将...按照常理shell中的变量默认是全局变量,不会存在变量作用域的问题,于是上网查了下,发现问题出在while上 while循环读取文件中内容有两种写法,一

    shell for循环、循环变量值付给其他shell脚本的方法

    今天小编就为大家分享一篇shell for循环、循环变量值付给其他shell脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    shell编程.doc(变量 用户定义变量,环境变量,位置变量(shell 参数) )

    主要内容: .shell基础 基本介绍,环境,选项,特殊字符 .shell变量 用户定义变量,环境变量,位置变量(shell 参数) .shell script编程 条件测试,循环及重复控制

    LINUX开发基础 系统使用 全屏编辑器VI SHELL 常用变量

    第一节 Linux系统概述 一、Linux简介 二、Linux系统的特点 三、Linux系统的组成 ...二、Shell的变量 三、Shell的测试命令 四、条件语句 五、循环语句 六、函数 七、参数变量和内部变量

    Linux Shell编程实验

    了解 Shell 的作用和主要分类。 了解 Bash的一般语法规则。 练习编写简单的shell程序。 二、实验内容 1.Shell变量的定义及其使用。 2.位置参数和环境变量。 3.Shell中的特殊字符。 4.条件判断结构与循环结构 5.函数...

    Shell编程入门基础必备视频教程.zip

    1Linux下Shell编程入门及变量讲解.mp4 2Linux下Shell编程入门及变量讲解.mp4 3Shell编程企业实战菜单系列.mp4 4Shell编程企业实战菜单系列.mp4 5Linux下LAMP实战及脚本编程思路讲解.mp4 6Linux下LAMP实战及脚本编程...

    Linux网络操作系统基础:shell编程基础.pptx

    Shell 编程基础;熟悉 Shell 基础知识 掌握 Shell 脚本的基本操作 结合实际案例展示 Shell 脚本编写的最佳实践 ;Linux 中的文本流;输出重定向;输入重定向;管道;熟悉 Shell 基础知识 掌握 Shell 脚本的基本操作 结合...

    Shell脚本for循环语句简明教程

    与其他编程语言类似,Shell支持for循环。 for循环一般格式为: 代码如下: for 变量名 in 列表 do  command1  command2  …  commandN done 当变量值在列表里,for循环即执行一次所有命令,使用变量名获取列表...

    shell 编程指南pdf

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    shell脚本学习手册

    Shell变量 4 1、使用变量 5 2、只读变量 5 3、删除变量 5 4、变量类型 6 5、shell字符串 6 6、Shell数组 7 7、Shell注释 9 Shell传递参数 9 1、实例 9 Shell数组 11 Shell运算符 12 1、算术运算符 13 2、关系运算符 ...

    利用Shell脚本循环读取文件中每一行的方法详解

    本文主要给大家介绍了关于使用Shell脚本循环读取文件每一行的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一、使用for循环 for line in `cat filename` do echo $line done ...

    【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二)

    【shell脚本】shell脚本之条件判断if、for与while循环(shell脚本基础学习二) shell中的if 单分支 if 条件测试 ;then 命令序列 fi 双分支 if 条件测试 ;then 命令序列1 else 命令序列2 fi 多分支 if 条件测试 ;...

    LINUX与UNIX SHELL编程指南(很全)

    10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 11.1 sort用法 104 11.1.1 概述 104 11.1.2 sort选项 104 11.1.3 保存输出 105 11.1.4 sort启动方式 105 ...

    shell基础12篇电子书shellchoki.chm

    主要内容: shell基础 基本介绍,环境,选项,特殊字符 shell变量 用户定义变量,环境变量,位置变量(shell 参数) shell script编程 条件测试,循环及重复控制 .shell定制

    跟老男孩学Linux运维:Shell编程实战

    / 132第8章 Shell函数的知识与实践 / 1518.1 Shell函数的概念与作用介绍 / 1518.2 Shell函数的语法 / 1528.3 Shell函数的执行 / 1528.4 Shell函数的基础实践 / 1538.5 利用Shell函数开发企业级URL检测脚本 / ...

    Shell中的while循环几种使用实例详解

    今天小编就为大家分享一篇关于Shell中的while循环几种使用实例详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    shell英文.rar

    作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 在排序算法中,Shell是希尔排序的名称。 基本上shell分两大类: 一:图形界面shell(Graphical User ...

    shell中文.rar

    作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 在排序算法中,Shell是希尔排序的名称。 基本上shell分两大类: 一:图形界面shell(Graphical User ...

    shell编程 创建shell脚本 shell 基础语法 shell流程控制语法 shell函数

    shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句...

Global site tag (gtag.js) - Google Analytics