Re: bash programmering

From: Michael Hembo (none@hembo--micron.dk.lh.bsd-dk.dk)
Date: Thu 24 Oct 2002 - 11:06:33 CEST


From: "Michael Hembo" <none@hembo--micron.dk.lh.bsd-dk.dk>
To: <none@bsd-dk--bsd-dk.dk.lh.bsd-dk.dk>
Subject: Re: bash programmering
Date: Thu, 24 Oct 2002 11:06:33 +0200

Hej Martin

Det lyder mystisk....

Det virkede på min boks, både med sh & bash son shell. Som andre også
nævner, er det ofte smartest altid at bruge sh til shellprogrammering.

Læg mærke til at:
fil=`cat /home/sites/local/mysql.domains`;

faktisk udfører endnu en kommando i en anden shell. Plingerne er såkaldte
`backticks` og ikke normale 'enkelte gåseøjne' :-)

Prøv at rette linien i koden til:
cat /home/sites/local/mysql.domains;

for at se om du overhovedet får noget output
Kør evt. scriptet med syntaksen:
bash -x ./script.sh

for at se hvordan det bliver eksekveret og hvor det exit'er

Michael

PS: Her er den udgave der virker på min BSD boks:

--- SCRIPT zz.sh ---
#!/usr/local/bin/bash

fil=`cat /tmp/doms`;

for a in $fil; do
    echo "Making dir for: $a";
    # Split domain in 2 .. subdomain and domain (www & domain.tld)
    b=`expr "$a" : '\([^.]*\)'`;
    c=`expr "$a" : '[^.]*\.\(.*\)'`;

    # Check if webstat dir exists
    if [ ! -d /home/sites/$c ]; then
            echo "...Making dir: /home/sites/$c";
            mkdir /home/sites/$c;
    fi
done
--- SCRIPT end ---

her er indholdet af /tmp/doms:

---
Micron $ /tmp\cat /tmp/doms
www.micron.dk
ns.klap.dk
www.firma.dk
www.mikkel.dk
---
og her er output fra scriptet:
---
Micron $ /tmp\bash ./zz.sh
Making dir for: www.micron.dk
...Making dir: /home/sites/micron.dk
Making dir for: ns.klap.dk
...Making dir: /home/sites/klap.dk
Making dir for: www.firma.dk
...Making dir: /home/sites/firma.dk
Making dir for: www.mikkel.dk
...Making dir: /home/sites/mikkel.dk
---

- "Intelligence is not what you know, but what you do when you don't know. " - Piaget.

----- Original Message ----- From: Martin Allan Jensen To: bsd-dk@bsd-dk.dk Sent: Wednesday, October 23, 2002 11:38 PM Subject: Re: bash programmering

Hej Michael....det virker stadig ikke, men jeg har også prøvet at lave den lidt om....nu ser den således ud....

#!/usr/compat/linux/bin/bash

for a in $(</home/sites/local/mysql.domains); do echo "Making dir for: $a"; # Split domain in 2 .. subdomain and domain (www & domain.dk) b=`expr "$a" : '\([^.]*\)'`; c=`expr "$a" : '[^.]*\.\(.*\)'`;

# Check if webstat dir exists if [ ! -d /home/sites/$c ]; then echo "...Making dir: /home/sites/$c"; mkdir /home/sites/$c; fi done

Med venlig hilsen Martin A Jensen

----- Original Message ----- From: Michael Hembo To: bsd-dk@bsd-dk.dk Sent: Wednesday, October 23, 2002 10:56 PM Subject: Re: bash programmering

Hej Martin

ret: $fil < /home/sites/local/mysql.domains;

til: fil=`cat /home/sites/local/mysql.domains`;

Så skal du bare se......

Michael -----Original Message----- From: Martin Allan Jensen <none@bailey--sprit.dk.lh.bsd-dk.dk> To: bsd-dk@bsd-dk.dk <none@bsd-dk--bsd-dk.dk.lh.bsd-dk.dk> Date: 23. oktober 2002 22:31 Subject: bash programmering

Først og fremmest undskyld jeg skriver over BSD listen, men jeg har virkeligt brug for hjælp....!

Jeg har lavet nedenstående streng der opretter et dir ud fra en liste hvis de ikke er oprettede....!

Kan nogen af jer se hvad jeg gør galt ?? Den kommer slet ikke med noget output...!!

--------------------------------- #!/usr/compat/linux/bin/bash

$fil < /home/sites/local/mysql.domains;

for a in $fil; do echo "Making dir for: $a"; # Split domain in 2 .. subdomain and domain (www & domain.tld) b=`expr "$a" : '\([^.]*\)'`; c=`expr "$a" : '[^.]*\.\(.*\)'`;

# Check if webstat dir exists if [ ! -d /home/sites/$c ]; then echo "...Making dir: /home/sites/$c"; mkdir /home/sites/$c; fi done ---------------------------

Med venlig hilsen & TAK! Martin A Jensen



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:24:24 CET