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
shell-programmierung
Re: shell-programmierung
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
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