【发布时间】:2019-08-19 10:03:28
【问题描述】:
下面的代码-sn-p 检查instance_status 是否可用。如果可用,请等待 15 秒,如果并回显实例状态。
我收到以下错误:
第 38 行:虽然:找不到命令
代码:
While ["$INSTANCE_STATUS" -eq "available"]
do
wait 15
if $INSTANCE_STATUS" -ne "available"
then
echo "$SOURCE_INSTANCE_ID" is "$INSTANCE_STATUS"
fi
done
【问题讨论】:
-
你应该看看shellcheck.net。
-
试试
while(小写) -
...虽然这里也有其他错误(
[s 周围缺少空格,使用-ne进行字符串而不是数字比较,缺少test运算符用于比较“可用”等),这并不能使问题符合我们的准则 - 相反,每个问题有多个错误会使其“过于宽泛”。 -
还要注意
wait 15不是等待15秒,而是等待ID为15的进程退出;你可能想要sleep 15。即使您实际监控的任何程序的状态在这 15 秒内确实发生了变化,您仍然使用INSTANCE_STATUS的旧值,而不是检查此代码中是否有更新;因此,无论实例状态是否发生变化,循环始终是无限的。
标签: shell