bash之局部变量与子shell(转载)
shell是每个接触linux、unix用户不得不会的工具,谈到shell就又联系到bash,因为这个shell是普遍被使用的。那么bash中的局部变量和子shell你是否能熟练掌握呢?这里推荐一本学习bash必须读的书《高级Bash脚本编程指南》。
> a=66
> }
[root@vm3 ~]# echo $a
[root@vm3 ~]# defval
[root@vm3 ~]# echo $a
66
变量a在函数外可以访问到,确定是全局变量。继续测试
> local a=3
> }
[root@vm3 ~]# defval
[root@vm3 ~]# echo $a
66
这里使用local定义局部变量a,但是在函数外却访问不到,输出的值仍然是前面我们赋的值
3
[root@vm3 ~]# echo $a
66
这里最后输出的仍然是66,还是原来的值,即使没有使用local命令定义
66
[root@vm3 ~]# echo $a
66
可以看出两次输出的都是66,意味着每一个管道是一个子shell
├─sshd───sshd───bash───bash───pstree
#!/bin/sh
(cat /root/expr1|bc >> /root/rs) &
(cat /root/expr2|bc >> /root/rs) &
wait
cat /root/rs
[root@vm3 ~]# ./t.sh
15
40
这里的wait会等待所有前面放入后台的进程执行完毕才开始运行
bash之局部变量与子shell(转载)的更多相关文章
- 进入子shell的各种情况分析
子shell的概念贯穿整个shell,写shell脚本时更是不可不知.所谓子shell,即从当前shell环境新开一个shell环境,这个新开的shell环境就称为子shell(subshell),而 ...
- 子shell以及什么时候进入子shell
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 子shell的概念贯穿整个shell,写shell脚本时更是不 ...
- Linux Shell编程(27)——子shell
运行一个shell脚本时会启动另一个命令解释器. 就好像你的命令是在命令行提示下被解释的一样, 类似于批处理文件里的一系列命令.每个shell脚本有效地运行在父shell(parent shell)的 ...
- 子shell
http://bbs.csdn.net/topics/392292455 https://www.cnblogs.com/daniaoge/p/6161821.html http://blog.csd ...
- 统计文件种类数+获取子shell返回值的其它方法
前言 只是作为一个shell的小小练习和日常统计用,瞎折腾的过程中也是摸到了获取子shell返回值的几种方法: 肯定还有别的方法,跟进程间的通信相关,希望你能提出建议和补充,谢谢~ 完整程序: #! ...
- 命令行子shell 括号 ()
子shell 控制变量 ansible-direc:~ # (export hello=world;echo $hello)worldansible-direc:~ # echo $hello ans ...
- Linux编程 9 (shell类型,shell父子关系,子shell用法)
一. shell类型 1.1 交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...
- Linux中shell和子shell一点点理解
Linux执行脚本有两种方式,主要区别在于是否建立子shell 1.像sh,bash,./命令是用来执行shell脚本的,在bash/sh命令下,脚本文件可以无"执行权限",即 ...
- linux 子shell subshell和函数
关于子shell, subshell 参考:http://blog.csdn.net/sosodream/article/details/5683515 系统引导时的进程为 "原始进程&qu ...
随机推荐
- Log4j使用指南
1 概述 本文档是针对Log4j日志工具的使用指南.包括:日志介绍.日志工具介绍.Log4j基本使用.Log4j的高级使用.Spring与log4j的集成等.并进行了举例说明. 本文档 ...
- echarts使用记录(二)legend翻页,事件,数据集,设置y轴最大/小值,让series图形从右侧出往左移动
1.有时候legend比较多的时候,需要做翻页比较好,有个属性legend的type属性设置为scroll,然后animation可以控制动画,官方文档均可查. 再就是scrollDataIndex, ...
- Node.js:模块系统、函数
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块, ...
- RS报表从按月图表追溯到按日报表
相信很多COGNOS开发人员看到这个标题就会感觉很轻松,追溯无非是COGNOS自带的一个下钻的功能,但是这里却是固定的条件: 要求1:A报表显示按月的图表B报表显示按日的明细 2:追溯到B的时候B的开 ...
- </p>标题设置
333333333333333333333333333333 border-top-left-radius: 3px; border-top-right-radius: 3px; border-bot ...
- 解密SVM系列(四):SVM非线性分类原理实验
前面几节我们讨论了SVM原理.求解线性分类下SVM的SMO方法.本节将分析SVM处理非线性分类的相关问题. 一般的非线性分类例如以下左所看到的(后面我们将实战以下这种情况): 能够看到在原始空间中你想 ...
- (C++)已知String类的定义,实现其函数体
CString类的定义如下: class CMyString{ public: CMyString(const char* pData=NULL); CMyString(const CMyString ...
- Simple TCP/IP Echo Server & Client Application in C#
1. TCP Server The server’s job is to set up an endpoint for clients to connect to and passively wait ...
- busybox hexdump 命令使用
http://blog.sina.com.cn/s/blog_a6559d920101gvlk.html hexdump命令是Linux下的打印16进制的利器,它可以按我们指定的格式输出16进制,特别 ...
- NFC低功耗模式