aix下shell读取脚本文件并逐行执行

 我们很多时候需要将一个大功能的shell脚本分在不同的文件里,这样能起到条理清晰,多次复用的好处。

但是有一个问题不得不提出来,就是单个shell里面设置的环境变量在引用者里面是无效的。

举例说明:

 

  •  a.sh的内容,我们在a中执行b
#!/usr/bin/sh
b.sh
echo $test_a
  • b.sh的内容,我们设置了一个环境变量,或者说变量。
#!/usr/bin/sh
export test_a=ok;
  • 结果如下:
[osstest:/oradata/olcomtest$]a.sh
ok

[osstest:/oradata/olcomtest$]

 

可见b中可以输出了正常的值,而a中则无法引用,这是shell的本有的特点。

但是我们如何能达到一个环境变量设置的文件多次使用呢。

答案是:我们将b.sh中的文件内容在a中逐行执行, 注意如果b中存在多行一个单位的脚本则无效了。

例子如下:

 

#!/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中的环境变量了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值