博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell编程中的变量作用域
阅读量:7249 次
发布时间:2019-06-29

本文共 675 字,大约阅读时间需要 2 分钟。

有两个shell脚本文件:

a.sh

name=Tomecho $name./b.sh

b.sh

echo "name in b.sh:"$name

运行./a.sh时输出结果:

[root@centos ~]# ./a.shTomname in b.sh:

可见,虽然b是a的子进程,但是a中定义的变量在b中是不可见的。

如果想要在b中可以访问,需要用expert来定义:

export name=Tomecho $name./b.sh
[root@centos ~]# ./a.sh Tomname in b.sh:Tom

即用export定义的变量可以在进程及其子进程中访问到。

如果想要在父进程中访问子进程的变量应该怎么办呢?

需要export和source配合使用:

a.sh

export name=Tomecho $namesource ./b.shecho "name2 in a:"$name2

b.sh

echo "name in b.sh:"$nameexport name2=Jackecho "name2 in b.sh:"$name2

这样a中就可以访问到了:

[root@centos ~]# ./a.shTomname in b.sh:Tomname2 in b.sh:Jackname2 in a:Jack

 总结

export可以让子进程也能访问到;

source可以让子进程中的export变量暴露到父进程中;

转载于:https://www.cnblogs.com/at0x7c00/p/7978178.html

你可能感兴趣的文章
压缩 KVM 的 qcow2 镜像文件
查看>>
python 读写文件中 w与wt ; r与rt 的区别
查看>>
深究“通过样式表实现固定表头和列”
查看>>
《Office 365开发入门指南》上市说明和读者服务
查看>>
Docker生态会重蹈Hadoop的覆辙吗?
查看>>
WPF换肤之八:创建3D浏览效果
查看>>
JEECG环境搭建(Maven版本)-总结Eclipse
查看>>
HTTP第一篇【简单了解HTTP、与HTTP相关的协议】
查看>>
Python生成随机验证码
查看>>
Python学习笔记(3)——数据类型和变量
查看>>
03、微信小程序之 永不过时的HelloWorld
查看>>
NFS配置不当那些事
查看>>
[译] 如何写出更好的 React 代码?
查看>>
一起撸个朋友圈吧(step3) - ListAdapter篇
查看>>
LeetCode 642 号问题:设计搜索自动补全系统
查看>>
探究Android View 绘制流程,Canvas 的由来
查看>>
JS原生交互
查看>>
[译] JavaScript 工作原理:Web Worker 的内部构造以及 5 种你应当使用它的场景
查看>>
Android使用Path仿支付宝支付成功失败动画
查看>>
聊聊rocketmq的DailyRollingFileAppender
查看>>