Я бы сделал так:
expect "~]#" { send "swadm install show AMM\r"}
expect "~]#" {
if {[string match {*product-state=Applied*} $expect_out(buffer)]} {
do-thing-1
} else {
do-thing-2
}
}
После команды "show" просто дождитесь следующего запроса. Тогда все, что увидела expect, будет в expect_out(buffer)
, и вы можете использовать сопоставление строк (или regex-сопоставление, если хотите) на всем тексте буфера. Вам не нужно разделять его по строкам.
Intente esto usando bash moderno (no use acentos graves oexpr
):
if ((var1 > 800)); then
overtime=$((var1 - 800)) # variable assignation with the arithmetic
echo "Overtime: $overtime"
fi
O simplemente:
if ((var1 > 800)); then
overtime="Overtime: $((var1 - 800))" # concatenation of string + arithmetic
fi
Comprobararitmética bash
if (( var1 > 800 )); then
printf 'Overtime: %d\n' "$(( var1 - 800 ))" >>"$path"
fi
expr
y los acentos graves son anticuados, y ni siquiera necesita una sustitución de comando aquí.