zoukankan      html  css  js  c++  java
  • 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中的环境变量了。

    https://www.iteye.com/blog/xuelianbobo-2098221

  • 相关阅读:
    为cocos2d-x实现安卓输入框。非全屏,无dialog,绑定到lua
    自己动手,丰衣足食。普通键盘实现键盘宏(Windows和Mac版)
    go语言使用protobuf
    go语言使用redis —— redigo
    go语言实现线程池
    go语言实现的目录共享程序
    ss
    BST
    堆排序—最大优先级队列
    STL_Vector
  • 原文地址:https://www.cnblogs.com/wutou/p/15203878.html
Copyright © 2011-2022 走看看