我正在运行一个 shell 脚本run_sftp.sh ,其输出将是“完成”或“失败”,我正在将此脚本调用到另一个脚本中,如果run_sftp.sh输出为“完成” ,它将执行一些命令
If [ Output(run_sftp.sh) = 'done' ] then
echo "run"
else
"Stop running"
fi
这就是算法。请建议。
像这样?
retval=$(path/to/run_sftp.sh)
现在你已经完成/失败了 var retval
。你可以用你的逻辑做你的 if 检查。
您可以使用 $() 或反向 ` 来捕获输出
所以:
如果 [ $(run_sftp.sh) = '完成' ] 那么
ETC
我假设您的脚本 run_sftp.sh 将调用其他语句并仅在成功时才产生完成消息,并且 run_sftp.sh 调用的其他命令不会产生完成消息。在这种情况下,您捕获脚本运行的输出,然后 grep 完成
MSG=$(run_sftp.sh)
echo $MSG | grep 'done'
if [ $? -eq 0 ]
then
echo "run"
else
exit 9
fi
谢谢