PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : probleme mit "test"



meinereinerseiner
15-01-2003, 12:19
hi,

kann ich mit test eine variable mit einem string auf teilweise enthaltene
übereinstimmungen testen, quasi:




#!/bin/sh

var1=CLIS

if [ $var1 irgendwo in $1 ]; then
echo " $var1 in $1 gefunden, Verabeitung abgebrochen."
exit 1
else
.
.
.
fi

exit 0



wenn ich dem script testCLID.123 übergebe soll es das nach dem esle abarbeiten.
bei testCLIS.123 abbrechen.


der tom

meinereinerseiner
15-01-2003, 17:03
mit viel suchen und basteln kam ich dann zu dieser lösung:



#!/bin/sh

var1=CLIS

if [ -n "$1" -a "`echo $1 | awk '/'var1'/ { print "no"; next; } { print "ok" }'`" = "ok" ]; then
.
.
.
else
echo " $var1 in $1 gefunden, Verabeitung abgebrochen."
exit 1
fi




geht wie immer bestimmt auch einfacher ..... aber so gehts wenigstens überhaupt erstmal


der tom

micha
15-01-2003, 19:17
Hi,

so geht´s ein bischen einfacher :



if [ -n "$(echo $1 | grep $var)" ]
then
echo gefunden
else
echo nicht gefunden
fi


Gruß micha

meinereinerseiner
15-01-2003, 19:18
das finde ich jetzt schon etwas doof - weil viel zu einfach *lol*

Jasper
16-01-2003, 08:22
Original geschrieben von micha
Hi,

so geht´s ein bischen einfacher :



if [ -n "$(echo $1 | grep $var)" ]
then
echo gefunden
else
echo nicht gefunden
fi



oder so:

#!/bin/sh
var1=CLIS

if echo "$1" | grep -q "$var1";then
echo "gefunden"
else
echo "nicht gefunden"
fi

damit werden evtl. fehlermeldungen korrekt behandelt.
der parameter für grep sollte aber in jedem fall gequoted werden.

-j