sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #37549
Re: shellscripts
On Sat, 26 May 2001, Anders wrote:
> Jeg sidder lige og leger lidt med noget shell script værk, og vil i
> den forbindelse have mit script til at grep'e i en fil og hvis den
> finder søgeordet skal en ting ske og hvis den ikke gør skal en anden
> ting ske, hvordan er det lige jeg laver den pågældende if-sætning så
> jeg benytter output'et af en kommando?
Jeg plejer at gøre noget lig følgende:
--------------------
#!/bin/bash
SOEGEORD=$1
FIL=$2
#
# Undersøg om vi har fået parametre til scriptet.
#
if [ -z "${SOEGEORD}" -o -z "${FIL}" ]; then
echo "Usage: `basename $0` <søgeord> <fil>"
exit 1
fi
#
# Undersøg om filen findes.
#
if [ ! -f "${FIL}" ]; then
echo "Filen ${FIL} kunne ikke findes."
exit 2
fi
#
# Hiv resultatet af en kommando ind i en variabel.
# Smid stderror af p...... til.
#
SOEGERESULTAT=`grep "${SOEGEORD}" "${FIL}" 2>/dev/null`
if [ -n "${SOEGERESULTAT}" ]; then
#
# Vi har noget i variablen.
#
echo "${SOEGEORD} blev fundet i ${FIL}."
echo "Gør noget her"
else
#
# Variablen var tom
#
echo "${SOEGEORD} blev ikke fundet i ${FIL}."
fi
--------------------
"-z" undersøger om det er en tom linje. Derfor SKAL der "" omkring den
variabel der spørges om, da scriptet/testfunktionen ellers vil komme og
sige at den forventede noget.
"-n" undersøger om der er noget i variablen. Du skal også i dette tilfælde
bruge "" omkring variablen da du risikerer at den er tom.
Med venlig hilsen
Bjørn Bille Højte
bjoern@xxxxxxxxxxxxx
References