2

我正在运行一个 shell 脚本run_sftp.sh ,其输出将是“完成”或“失败”,我正在将此脚本调用到另一个脚本中,如果run_sftp.sh输出为“完成” ,它将执行一些命令

If [ Output(run_sftp.sh) = 'done' ] then
  echo "run"
else
  "Stop running"
fi 

这就是算法。请建议。

4

3 回答 3

6

像这样?

retval=$(path/to/run_sftp.sh)

现在你已经完成/失败了 var retval。你可以用你的逻辑做你的 if 检查。

于 2013-08-09T07:24:58.860 回答
1

您可以使用 $() 或反向 ` 来捕获输出

所以:

如果 [ $(run_sftp.sh) = '完成' ] 那么

ETC

于 2013-08-09T07:24:01.113 回答
1

我假设您的脚本 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

谢谢

于 2013-08-09T11:55:31.357 回答