• Ubuntu 10.10
  • GNU bash, версия 4.1.5(1)-релиз (i686-pc-linux-gnu)
  • Redis-Cli поставляется с Redis Verison 2.0.0

Этот скрипт работает:

#! /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 , поэтому результат налицо.)

1 ответ1

1

Нашел это. Информация redis-cli info выводит информацию с окончанием строки окна (CRLF). Вставка dos2unix где-то между каналами решает проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .