Encontrei. O redis-cli info
imprime informações com finais de linha do Windows (CRLF). Inserir dos2unix
em algum lugar entre os pipes resolve o problema.
Este script funciona:
#! /bin/bash
set -e
f=$(echo 'bgrewriteaof_in_progress:0' | grep bgrewriteaof_in_progress | cut -d':' -f2)
test "${f}" = "0" && echo y || echo n
echo $f
Impressões:
y 0
Este script não funciona:
#! /bin/bash
set -e
f=$(redis-cli info | grep bgrewriteaof_in_progress | cut -d':' -f2)
test "${f}" = "0" && echo y || echo n
echo $f
Impressões:
n 0
Como isso é possível? (Observe que echo $f
imprime 0
, então o resultado está lá.)