Cyklus přes více proměnných v bash-i

Jiri Kosina jikos na jikos.cz
Čtvrtek Březen 2 13:16:04 CET 2006


On Thu, 2 Mar 2006, Miroslav Benes wrote:

> [...]
> echo `for NAME in "$BACKUP_DNS $BACKUP_MAIL $BACKUP_CONF ... " ; do  echo
> $NAME ;  done` | xargs tar cvf - | gzip | ...
> Takto zapsáno to chodí dobře. Ale k dokonalosti tomu ještě chybá
> maličkost - aby se všechny názvy vstupujících proměnných zapsaly
> najednou.
> Druhá změna (nefunkční) :
> echo `for NAME in "$BACKUP_* " ; do  echo $NAME ;  done` | xargs tar cvf - |
> gzip | ...
> Je to proto, aby se po případné úpravě na začátku skriptu (v seznamech)
> nemusela dělat jetě úprava ve výkonné části. Dá se podobný cyklus nějak
> jednoduše zapsat v bash-i ? V manuálu i na netu jsem se po tomto tématu
> pídil, ale nic jsem nenašel.

Nejsem si jisty jestli toto dosahnete nejakymi standardnimi prostredky 
bashe, lepsimi nez je Vase reseni pres grepovani v obsahu environmentu.

Pokud se pouze chcete vyhnout nutnosti provadet dve zmeny na dvou 
vzdalenych mistech zdrojaku, vyresil bych to spis a-la

BACKUP_DNS="/var/named /etc/namedb"
BACKUP_MAIL="/etc/mail /etc/aliases"
BACKUP_CONF="/etc/*.conf"
BACKUP_SYSCONFIG="/etc/sysconfig"
BACKUP_CRON="/var/cron /var/at /etc/cron.*/*"

BACKUP_ALL="$BACKUP_DNS $BACKUP_MAIL $BACKUP_CONF $BACKUP_SYSCONFIG 
$BACKUP_CRON"

A pak dale ve zbytku skriptu pracovat jen s promennou BASH_ALL.

-- 
JiKos.


Další informace o konferenci Linux