Этот сценарий действительно работает:
#! /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
Печать:
y 0
Этот сценарий не работает:
#! /bin/bash
set -e
f=$(redis-cli info | grep bgrewriteaof_in_progress | cut -d':' -f2)
test "${f}" = "0" && echo y || echo n
echo $f
Печать:
n 0
Как это возможно? (Отметьте это echo $f
печать 0
, таким образом, результат там.)
Найденный им. redis-cli info
информация о печати с окончаниями строки окон (CRLF). Вставка dos2unix
где-нибудь между каналами действительно решает вопрос.