timeout
, вероятно, хороший вариант, но поскольку вы пытаетесь запустить цикл, может потребоваться немного больше синтаксиса, чем вы хотите. Если это то, что вы предпочитаете, я уверен, что мы можем привести пример.
Если вы хотите сделать это старомодным способом ...
declare -i now start=$(date +%s) # linux epoch timestamp in seconds
timeout=300 # 300s = 5m
until grep -q "1" /var/tmp/machineip
do now=$(date +%s) # linux epoch timestamp in seconds
if (( ( now - start ) < timeout )) # less than 5m
then nova list --name spawningtestwin |
awk -F= '/spawningtestwin/ {
gsub(/ +//,"",$2);
print $2
}' > /var/tmp/machineip
sleep 20
else echo taking too much time.
exit 1
fi
done
awk
не мое состояние. ребята, пожалуйста, проверьте меня на этом ...
В частности, awk -F= '{print $2}'|awk '{print $1}'
не имеет смысла для меня. В general каждый раз, когда несколько простых вызовов awk
, sed
и / или grep
передаются по конвейеру, это заставляет меня думать, что большинство из них можно было бы исключить.