通过文件传递两个远程shell脚本

时间:2013-01-03 12:09:12

标签: file shell ssh communication

我真的需要帮助来理解我的shell脚本的奇怪行为。

实际上,我有两个脚本在不同的节点上运行。第一个脚本ssh一个远程节点并启动第二个脚本。第二个脚本计算成本并将其发送到第一个脚本。为此,第二个脚本ssh第一个脚本(asker节点)的节点,并将成本写入将由第一个脚本读取的文件中(如下所示)。

问题是当cost的值为0时,第一个脚本会继续正常执行,但如果它的值不同,那么第一个脚本将保持挂起状态,并且不会在ssh之后执行指令。

有没有人对此有解释? 如果需要,我可以提供有关代码的更多详细信息。

提前谢谢。

第一个脚本:

....
ssh $remore_node "sh cost_computation.sh <parameters>"
cost=`cat $response_file`
if [ $cost -eq 0 ]
then
    ....
else
    ....
fi

第二个脚本(cost_computation):

....
computation of the cost 
ssh $asker_node "echo $cost > $response_file"

1 个答案:

答案 0 :(得分:0)

你能这样做吗?

第一个脚本:

....
cost=$(ssh $remore_node "sh cost_computation.sh <parameters>")
if [ $cost -eq 0 ]
then
    ....
else
    ....
fi

第二个脚本(cost_computation):

....
computation of the cost 
echo $cost