`
xuelianbobo
  • 浏览: 171415 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

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

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics