Re: bash programmering

From: Bobby Billingsley (none@bobby--bofh.dk.lh.bsd-dk.dk)
Date: Thu 24 Oct 2002 - 11:04:41 CEST


Date: Thu, 24 Oct 2002 11:04:41 +0200
From: Bobby Billingsley <none@bobby--bofh.dk.lh.bsd-dk.dk>
To: bsd-dk@bsd-dk.dk
Subject: Re: bash programmering

Hej igen Martin

On Wed, 23 Oct 2002, Martin Allan Jensen wrote:

>
> ---------------------------------
> #!/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
> ---------------------------

Heh - så ku' jeg altså ikke lige ha' at det var så langt det script, så jeg
kom til at nørde lidt mere med det:

    #!/bin/sh

    InputFile="/home/sites/local/mysql.domains"
    BaseDir="/home/sites"

    awk 'BEGIN {FS="."}{printf "%s.%s\n", $(NF-1),$NF}' < ${InputFile} | \
        while read SecondLevel; do
            if [ ! -d ${BaseDir}/${SecondLevel} ] ; then
                echo "...Making dir: ${BaseDir}/${SecondLevel}"
                mkdir ${BaseDir}/${SecondLevel}
            fi
        done
    

...her har jeg så lagt teksthåndteringen over til awk (som jo er bygget til
netop den slags ting) og giver så shell'en lejlighed til at gøre hvad den er
god til :-)

/bobby

-- -- -- -- -- -- -- Bobby Billingsley, General Specialist -- -- -- -- -- -- --
 ___ .--.- \ | | _
`-,_`--'__/ x./_ | Remember to love while you dare | ASCII ribbon campaign ( )
//-_`--/ //\ \ | remember to live while you do | - against HTML email X
 \__/ `---' \__/ | -- Piet Hein | & vcards / \
                 Lat: 55° 40' 52" N Lon: 12° 32' 56" E
     Anyone without a sense of humor is at the mercy of the rest of us :->



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