シェル スクリプトの奇妙な動作を理解するために本当に助けが必要です。
実際、異なるノードで 2 つのスクリプトを実行しています。最初のスクリプトはリモート ノードを ssh し、2 番目のスクリプトを起動します。2 番目のスクリプトはコストを計算し、それを最初のスクリプトに送信します。そのために、2 番目のスクリプトは最初のスクリプトのノード (asker ノード) を ssh し、最初のスクリプトによって読み取られるファイルにコストを書き込みます (以下に示すように)。
問題は、cost の値が 0 の場合、最初のスクリプトは通常どおり実行を継続しますが、その値が 0 と異なる場合、最初のスクリプトは中断されたままになり、ssh の後に命令を実行しません。
誰かがそれについて説明していますか?必要に応じて、コードの詳細を説明できます。
前もって感謝します。
最初のスクリプト:
....
ssh $remore_node "sh cost_computation.sh <parameters>"
cost=`cat $response_file`
if [ $cost -eq 0 ]
then
....
else
....
fi
2 番目のスクリプト (cost_computation):
....
computation of the cost
ssh $asker_node "echo $cost > $response_file"