如何在unix中将一个shell脚本的输出捕获到另一个shell脚本中

时间:2013-08-09 07:21:21

标签: shell unix sed awk

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

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

这是算法。请建议。

3 个答案:

答案 0 :(得分:4)

像这样?

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

现在你已经在var retval中完成/失败了。如果检查你的逻辑,你可以做你的。

答案 1 :(得分:1)

您可以使用$()或反向<< / p>来捕获输出

所以:

如果[$(run_sftp.sh)='完成'] 然后

答案 2 :(得分: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

由于