Portál AbcLinuxu, 13. května 2025 22:00

Dotaz: bash 4 , problem s array

11.6.2011 00:38 dik
bash 4 , problem s array
Přečteno: 318×
Odpovědět | Admin
Nazdar, je tu nějaký bash guru ,kdo mi poradí proč níže psaný kód v bash3 fakční a v bash4 ne? Fakt už nevím. Dík dik

dbarray=( $( ${cmd_mysql} -h ${hostname} -u ${mysql_user} -Bse 'show databases'|grep -v 'information_schema'|tr '\n' ' ' ) )

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2011 12:24 dik
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě bych přidal chybovou hlášku:-)

/scripts/rsnapshot/backup.sh: 32: Syntax error: "(" unexpected
11.6.2011 15:05 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Bez toho, abychom věděli, na co expanduje ten vnitřek, těžko hádat.
11.6.2011 16:01 dik
Rozbalit Rozbalit vše Re: bash 4 , problem s array
tady:

cmd_mysql='/usr/bin/mysql' hostname='neco.cz' mysql_user='nejakylogin' mysql_password='nejakeheslo'
11.6.2011 16:02 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash 4 , problem s array
To mi tak nějak došlo… Myslel jsem samozřejmě výstup toho příkazu.
11.6.2011 16:15 Kit
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Výstup toho příkazu je seznam databází. Problém je zřejmě v tom, jak v bashi udělat ze seznamu pole. Dříve fungoval jednoduchý zápis s kulatými závorkami, u nového bashe selhává.
11.6.2011 17:11 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Ten zápis funguje. Problém není v informacích, které jste poskytl, takže musí být v těch, které jste neposkytl.
11.6.2011 17:26 Kit
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Stěžuje si, že mu to nejede v Bash 4, ale v předchozích verzích mu to jelo. Mně to však jede i v nové verzi. Souhlasím, že chyba bude asi v něčem jiném.
11.6.2011 16:35 Kit
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zajímavé. Teď jsem to zkoušel v bash 4.1.7 a funguje mi to normálně:
dbarray=( $(mysql -Bse 'show databases'|grep -v 'information_schema') )
Do pole $dbarray se mi uložil seznam databází MySQL.

K čemu tam vlastně máš tr?
11.6.2011 16:39 Kit
Rozbalit Rozbalit vše Re: bash 4 , problem s array
A vůbec: Proč ten seznam databází dáváš do pole? Není jednodušší ho rovnou zpracovat?
mysql -Bse 'show databases'|
  grep -v 'information_schema'|
  while read data; do
    echo "Zálohuji $data"
  done
11.6.2011 19:44 dik
Rozbalit Rozbalit vše Re: bash 4 , problem s array
Jj, pomohlo . Díky všem za čas a ochotu . dik

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.