期待脚本调用另一个期望脚本

时间:2014-05-25 09:08:33

标签: linux bash shell unix expect

当我有两个bash脚本时:

#script1.sh
echo "aaa"
script2.sh

#script.sh
echo "bbb"

当我运行script1.sh时,我得到了两个" aaa"和" bbb"在我的控制台中打印。而对于期望脚本:

#script1
puts aaa
exec script2

#script2
puts bbb

我只能得到" aaa"在我的控制台中打印。那脚本2是在运行后台吗? (我知道它正在运行,因为当脚本2添加了睡眠时,我发现它已经停留了一段时间)

我怎样才能同时获得" aaa"和" bbb"用这两个期望的脚本?

提前致谢

2 个答案:

答案 0 :(得分:0)

exec script2执行script2并返回其输出 - 但它不会将输出打印到stdout。

您可以使用

#script1
puts aaa
puts [exec script2]

#script2
puts bbb

明确打印script2的输出。

答案 1 :(得分:0)

据我记忆,exec用新的替换当前进程。例如,exec ls终止了bash过程。