shell-programmierung

Post Reply
Message
Author
equal

shell-programmierung

#1 Post by equal »

Hi,

folgendes will ich machen:

1.

ich habe eine datei 'test.txt' in der der satz 'das ist ein test' steht.
ich möchte diese datei auslesen und als variable definieren z.Bsp. $test , so daß ich mit mit echo $test den Inhalt dieser Datei anzeigen kann <- brauche es zum auswerten einer datei mit if --- fi.

2.

ich möchte eine Ausgabe eines Befehls in eine Variable umleiten:
z.Bsp:

mount /dev/cdrom
Attached scsi CD-ROM sr0 .......

diese Ausgabe soll in eine Datei ider in eine Variable geschrieben werden, so daß ich mit dieser weiterarbeiten kann

hmmm... ich glaube das wars schon ;)

danke schon mal für antworten

Jochen

Re: shell-programmierung

#2 Post by Jochen »

Zu 1.

Gut, dass Du dazugeschrieben hast, was D eigentlich machen willst! Verwende einfach grep:<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
if grep 'das ist ein test' test.txt >/dev/null 2>&1 ; then
echo "Datei hat den Zielsatz"
else
echo "Datei hat den Zielsatz *nicht*"
fi
</font><hr></pre></blockquote>
Man <i>muss</i> nicht immer mit test bzw. [] nach if arbeiten! Hauptsache, dass Kommando nach if liefert einen aussagekräftigen Exit-Code zurück. grep liefert 0 bei Treffer und 1 bei keinem Treffer - genau richtig.


Zu 2.

Pech gehabt... Die Meldung ist keine Ausgabe des mount-Kommandos, sondern eine des Kernels. Durch den Zugriff auf /dev/scd0 beim Mounten wird der Treiber für SCSI-CDROMs geladen, und der meldet, was er findet. Wenn Du diese Meldung weiterverarbeiten willst, musst Du sie aus der Ausgabe von dmesg herausfischen:

MELDUNG=`dmesg | grep 'Attached scsi CD-ROM'`

Dann steht's in der Variablen MELDUNG drin. Viel Spass beim Basteln!

Jochen

Post Reply