在shell脚本中传播值

时间:2014-04-20 01:45:14

标签: linux bash shell environment-variables

我有一个简单的脚本,它使用CAPDEPTH作为count变量,并为每个值调用一些测试。

#!/bin/bash
# SCRIPT ONE
CAPDEPTH=1
...
while [ $CAPDEPTH -lt 11 ];
do
    echo "cap depth - $CAPDEPTH"
    make test-all-basics
    let CAPDEPTH=CAPDEPTH+1
done

在线

eval "make test-all-basics"

它会对另一个shell脚本进行多次调用,我也想依赖它来取决于CAPDEPTH的值。以下是该脚本中的几行。

# SCRIPT TWO
...
R_binary="${R_HOME}/bin/exec${R_ARCH}/R"
capture_arg="--tracedir $(CAPDEPTH)"
...

我的问题是如何将CAPDETH的值从SCRIPT ONE传播到SCRIPT TWO。这甚至可能吗? 我已尝试在两个脚本中导出变量CAPDEPTH,但似乎不起作用。

2 个答案:

答案 0 :(得分:1)

#!/bin/bash
# SCRIPT ONE
CAPDEPTH=1
...
while [ $CAPDEPTH -lt 11 ]; do
    echo "cap depth - $CAPDEPTH"
    export CAPDEPTH # Makes it so that any child process inherits the variable CAPDEPTH and anything it contains.   
    make test-all-basics
    let CAPDEPTH++ # Increments CAPDEPTH by +1
done


# SCRIPT TWO
...
R_binary="${R_HOME}/bin/exec${R_ARCH}/R"
capture_arg="--tracedir $CAPDEPTH"
...

答案 1 :(得分:0)

内部脚本一次使用,

export CADEPTH=....
let CADEPTH=...
echo $CADEPTH

并在脚本2中,执行:

source script1

然后,

echo $CADEPTH