/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Bash scripting - loops ?
Fra : Brian Ipsen


Dato : 19-06-02 22:01

Hej!

En kvikt spørgsmål en en bash scripting ekspert:

Kan man have en variabel, f.eks:

DOMAINS="xyz.dk,test.dk,domain.dk"

og så få et eller andet i samme script til at køre et loop, hvor man
hiver hver enkelt domæne-navn ud i en midlertidig variabel og laver
en/flere operationer på det (bruger det som parameter til nogle
kommandoer) ??

/Brian


 
 
Michael Jenner (19-06-2002)
Kommentar
Fra : Michael Jenner


Dato : 19-06-02 23:21

Brian Ipsen wrote:
> Hej!
>
> En kvikt spørgsmål en en bash scripting ekspert:
>
> Kan man have en variabel, f.eks:
>
> DOMAINS="xyz.dk,test.dk,domain.dk"
>
> og så få et eller andet i samme script til at køre et loop, hvor man
> hiver hver enkelt domæne-navn ud i en midlertidig variabel og laver
> en/flere operationer på det (bruger det som parameter til nogle
> kommandoer) ??

Du kan hvis du bruger mellemrum som separator:

POWER_SERVICES="atd crond"

for i in $POWER_SERVICES; do
/sbin/service $i $what
done

Og med regular expressions kan man sikkert ændre strengen fra at bruge ,
som separator til at have mellemrum.

Mvh Michael






frank damgaard (20-06-2002)
Kommentar
Fra : frank damgaard


Dato : 20-06-02 08:37

Brian Ipsen <spammers@nowhere.net> wrote:

> DOMAINS="xyz.dk,test.dk,domain.dk"

> og så få et eller andet i samme script til at køre et loop, hvor man
> hiver hver enkelt domæne-navn ud i en midlertidig variabel og laver
> en/flere operationer på det (bruger det som parameter til nogle
> kommandoer) ??

Hvis du i BASH manualen søger efter "array", så vil du kunne lave
et array:

declare -a DOMAINS
DOMAINS=( xyz.dk
test.dk domain.dk )

Man kan også tildele flere domains i en løkke,
checke på antallet af elementer, og man kan blot
gennemløbe elementerne i en for-løkke.

for dom in "${DOMAINS}"; do echo $dom; done

ovenstående virker også hvis der oprettes et element med blanktegn,
f.eks. "domain with spaces.ups"
eller hvis DOMAINS er tom.

--
Frank Damgaard |


Claus Rasmussen (20-06-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 20-06-02 13:52

Brian Ipsen wrote:

> Kan man have en variabel, f.eks:
>
> DOMAINS="xyz.dk,test.dk,domain.dk"
>
> og så få et eller andet i samme script til at køre et loop, hvor man
> hiver hver enkelt domæne-navn ud i en midlertidig variabel og laver
> en/flere operationer på det (bruger det som parameter til nogle
> kommandoer) ??

Sådan her:

DOMAINS=a.b.c,aa.bb.cc,aaa.bbb.ccc

for domain in ${DOMAINS//,/ }
do echo $domain
done

MVH
-Claus


Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408872
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste