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