mysql resultar na variável bash

0

Meu script é assim:

#!/bin/bash

mysql dbname -N -uroot -p -hhost -se "SELECT COUNTRY, COUNTRY_NAME FROM server ORDER BY COUNTRY"

output=$(mysql dbname -N -uroot -p -hhost -se "SELECT COUNTRY, COUNTRY_NAME FROM server ORDER BY COUNTRY")
echo $output

O resultado é assim:

Enter password: 
CN  China
CZ  Czech Republic
FI  Finland
JP  Japan
NL  Netherlands
RO  Romania
SG  Singapore
UA  Ukraine
US  United States
US  United States
US  United States
US  United States
Enter password: 
CN China CZ Czech Republic FI Finland JP Japan NL Netherlands RO Romania SG Singapore UA Ukraine US United States US United States US United States US United States

Eu quero definir a variável bash output para ser a saída da consulta mysql, mas a variável output parece ser boa, exceto que todas as novas linhas foram removidas. Minha pergunta é como definir a variável bash para ser o resultado da consulta mysql com cada linha em uma linha?

    
por Elgs Qian Chen 20.09.2015 / 14:33

1 resposta

5

Em vez de

echo $output

cite! Leia sobre divisão de palavras

echo "$output"

"Aspas duplas" a cada literal que contenha espaços / metacaracteres e todas expansão: "$var" , "$(command "$var")" , "${array[@]}" , "a & b" . Use 'single quotes' para o código ou literal $'s: 'Costs $5 US' , ssh host 'echo "$HOSTNAME"' . Veja o link link
link

    
por 20.09.2015 / 14:37

Tags