Re: bash programmering

From: Michael Hembo (none@hembo--micron.dk.lh.bsd-dk.dk)
Date: Thu 24 Oct 2002 - 12:10:37 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 12:10:37 +0200

Hej Martin (og alle i andre :-)

Her er mit bud på scriptet hvis jeg selv havde lavet det: (ikke rigtigt
eller bedst, bare min måde)

--- script ---
#!/bin/sh
# Set command vars
CAT="/bin/cat";
MKDIR="/bin/mkdir -p";

# Set local configuration
baseFolder="/home/sites";
domainList=`${CAT} /tmp/domains`;
makeFolder="${MKDIR} ${baseFolder}/";

# Init local functions
doMakeFolder() {
    echo "Making for: ${domain}";
    # Retrieving domainpart of hostname
    domainFolder=`expr "${domain}" : '[^.]*\.\(.*\)'`;
    echo " Domain: ${domainFolder}";

    # Check if webstat dir exists
    if [ ! -d ${baseFolder}/${domainFolder} ]; then
        echo " Doing: ${makeFolder}${domainFolder}";
        `${makeFolder}${domainFolder}`;
    fi;
};

# Main loop
for domain in ${domainList} ; do
   doMakeFolder;
done;
--- script ---

Jeg har lavet en list over shell kommandoer jeg tit bruger i mine scripts,
disse bliver så inkluderet i starten af scriptet i stedet for at definere
dem hver gang:

/usr/local/include/shell-cmds.inc indeholder
$ cat /usr/local/include/shell-cmds.inc
CAT="/bin/cat";
MKDIR="/bin/mkdir -p";
AWK="/usr/bin/awk";
....... o.s.v.....

Starten ville se ud som følger:

--- script ---
#!/bin/sh
# Set command vars
. /usr/local/include/shell-cmds.inc

# Set local configuration
.
.
--- script ---

ligeledes kan man inkludere ofte brugte funktioner.

Derudover gemmer jeg altid en liste (cat domains) i en variabel i stedet for
at cat'te direkte i for løkken.
På den måde kan jeg hurtigt overgå til at hente liste fra f.eks. MySQL ved
at ændre :

domainList=`${CAT} /tmp/domains`;

til:

domainList=`${SQLclient} "select DOMAIN from SITES where STAUS='log'"
${SQLhost} ${SQLuser} ${SQLdb}`;

uden at ændre andet i scriptet.

Hvor følgende:
SQLclient='/usr/local/bin/mysql -A -s -s -e'
SQLhost='-h localhost'
SQLuser='-u USER -p PASSWORD'
SQLdb='WEBSITES'

så er defineret/inkluderet tidligere i scriptet.

Michael

Håber sgu ikke at det var for rodet :-)

 - "Intelligence is not what you know, but what you do when you don't know.
" - Piaget.
----- Original Message -----
From: Martin Allan Jensen <none@bailey--sprit.dk.lh.bsd-dk.dk>
To: <none@bsd-dk--bsd-dk.dk.lh.bsd-dk.dk>
Sent: Thursday, October 24, 2002 4:08 AM
Subject: Re: bash programmering

> Hej igen igen,
>
> Jeg har nu prøvet at omklamre variablerne, samt bruge cat til at læse
filen......filen eksisterer under det korrekte navn og indeholder 7
domæner.....så det er MEGET mystisk fystisk.....
>
> Med venlig hilsen
> Martin A Jensen



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