我真的需要帮助来理解我的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"
答案 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