Shell mehere Wörte übergeben
Hi Leute,
habe mir ein Shell Script geschrieben welches aus einer vorhandenen Textdatei bestimmte Dinge heraus suchen soll.
ich setze also innerhalb des Shell scriptes eine Variable
suche=Bitte
und das Ergebnis ist super.
Möchte ich aber nach etwas konkretem suchen dann geht's nicht
suche=Bitte Namen eingeben
Das System sagt mir dann das es den Datiennamen nicht finden kann. Habe es auch schon mit Anführungsstrichen, Hochkomma und diesen beiden ´ und ` versucht.
Auch mit einem ECHO funktioniert's nicht:
echo "Geben Sie den Suchbegriff ein: "
read suche
Man kann dann zwar alles eingeben, mit einem Wort geht's auch aber sobald ein Leerzeichen auftaucht, knallts :-(
Hab Ihr irgendwelche Tips ?
Gruß
LowNoise
Antwort schreiben
Antwort 1 von Randolf vom 11.09.2019, 12:56 Options
Ich vermute, Du hast grep im Einsatz.
Antwort 2 von stefanix vom 11.09.2019, 15:02 Options
Hi,
wenn du der Variablen "suche" den String mit "Bitte Namen eingeben" übergibst, wird dieser String mit grep "$suche" test.text auch gefunden, falls in der Datei vorhanden.Du musst grep den String in Anführungszeichen übergeben.
Grüße, Stefan
Antwort 3 von stefanix vom 11.09.2019, 15:16 Options
PS: Zum Verständnis,
suche="Hallo Welt"
echo $suche -> Ergebnis: Hallo Welt
grep Hallo Welt test.txt -> Welt wird als 2. Argument (File) übernommen und nicht als Suchstring.
grep [options] PATTERN [FILE. . .]
Schau mal mit man bash unter Quoting nach.
Grüße Stefan