【发布时间】:2016-06-24 20:31:41
【问题描述】:
我正在使用一个名为 Boxfuse 的实用程序,convert 命令执行一些需要一些时间的处理,并且在此处理过程中有几行输出。
我正在尝试将最后一个输出中的最后一个单词保存到一个变量中。这大约有一半的时间有效。另一半实际上保存了较早输出行之一的最后一个单词。我的 bash 看起来像这样:
BFCONVERT=$(boxfuse convert MyApp:1.3.5)
AMI=${BFCONVERT##* }
echo $AMI
这个命令的完整输出,跨越几行,超过一分钟左右:
Boxfuse client v.1.19.12.1000 Copyright 2016 Boxfuse GmbH. All rights reserved. Account: myname (First Last)
Waiting for AWS to create an AMI for myname/MyApp:1.3.5 in aws-region-1 (this may take up to 50 seconds) ...
AMI created in 02:51.972s in aws-region-1 -> ami-12345678
有时我的脚本会回显第一行或第二行的最后一个词,而不是最后一个词。如何强制它等到命令完成?
【问题讨论】:
-
听起来好像
boxfuse要么将它的一些输出写入标准错误,要么在它派生一个实际产生输出的子进程后退出。 -
上述场景中的两个都没有。
-
@AxelFontaine 命令是否有可能有时不返回最后两行?似乎在我运行它的大约一半时间里,我将我的姓氏(从第一行开始)作为最后一个单词,没有额外的输出。
-
@AxelFontaine 奇怪的部分是,如果我将此命令置于休眠状态的循环中,它要么在第一次尝试时成功,要么每次迭代都失败。
-
@RhodesianHunter Rerunning 曾经是个小问题。我们今天推出了一个新版本,现在可以输出一条包含 AMI ID 的消息。
标签: bash cloudcaptain