Problemas estranhos com o bash $ ()

0
  • Ubuntu 10.10
  • GNU bash, versão 4.1.5 (1) -release (i686-pc-linux-gnu)
  • redis-cli enviado com o Redis verison 2.0.0

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á.)

    
por Alexander Gladysh 19.04.2011 / 02:10

1 resposta

1

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.

    
por 19.04.2011 / 02:38

Tags