Os dados que você recebe de upsc
têm o formato keyword: value
, um por linha. Você pode passar isso por meio de sed
para obter o formulário [keyword]="value"
e, em seguida, usar isso para inicializar um array associativo:
declare -A status="($(upsc myups | sed 's/\(.*\): \(.*\)/ []=""/'))"
Agora você pode obter o valor de qualquer palavra-chave, por exemplo, echo "${status[device.model]}"
.
Você pode percorrer todas as chaves e valores e fazer o que quiser:
for key in "${!status[@]}"
do echo "$key: ${status[$key]}"
done
Note, se você citar seus valores,
status="$(upsc myups)"
echo "${status[@]}"
você ainda teria um valor único, mas cada valor estaria em uma nova linha, como na saída desejada.