aix下shell读取脚本文件并逐行执行
我们很多时候需要将一个大功能的shell脚本分在不同的文件里,这样能起到条理清晰,多次复用的好处。
但是有一个问题不得不提出来,就是单个shell里面设置的环境变量在引用者里面是无效的。
举例说明:
- a.sh的内容,我们在a中执行b
1 2 3 | #!/usr/bin/sh b.sh echo $test_a |
- b.sh的内容,我们设置了一个环境变量,或者说变量。
- 结果如下:
可见b中可以输出了正常的值,而a中则无法引用,这是shell的本有的特点。
但是我们如何能达到一个环境变量设置的文件多次使用呢。
答案是:我们将b.sh中的文件内容在a中逐行执行, 注意如果b中存在多行一个单位的脚本则无效了。
例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/usr/bin/sh ##定义配置文件的存放目录 envFile=. /setenv .sh; echo "设置配置文件中的配置,配置文件为:${envFile}" ; sleep 2; while read line do eval $line; echo $line; done < $envFile; echo "环境变量设置完成,5秒后将启动程序" ; sleep 1; echo "5" ; sleep 1; echo "4" ; sleep 1; echo "3" ; sleep 1; echo "2" ; sleep 1; echo "1" ; ##启动程序 . /NEA035 NEA035 |
这样我们的NEA035程序就能使用setenv.sh中的环境变量了。
https://www.iteye.com/blog/xuelianbobo-2098221
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!