Teil eines Skripts, das ich schreibe, muss verschiedene Textdateien für die gleichen Zeichenfolgen überprüfen. Bevor ich nur eine Datei überprüfen musste, hatte ich eine lange Liste von Strings innerhalb von Kategorien, nach denen gesucht werden sollte, die als Variablen definiert sind. Später im Skript werden die Variablen aufgerufen und bei entsprechender Übereinstimmung an den Bildschirm ausgegeben:
%Vor%etc, etc ...
Jetzt muss ich es ändern, damit ich die grepped Zeichenfolgen gegen mehrere Textdateien überprüfen kann. Ich habe versucht, die neuen Dateien als Variablen zu definieren und sie in der if-Anweisung mit der grep-Variablen ohne Nutzen zu verbinden:
%Vor%Es scheint, dass ich keine Befehle in einer if-Anweisung pipen kann.
Sie können Pipes in if
verwenden, aber Sie mischen zwei Dinge.
Sie verwenden $category_1
mit pipe; und $category_1
ist kein Befehl.
Sie können anstelle der Variablen eine Befehlsersetzung verwenden.
und so weiter.
Sie können auch Variablen anstelle von Befehlen verwenden, aber es wird ein bisschen seltsam.
Sie könnten stattdessen einen Befehl wie folgt verwenden: if ["$ house"="nett"] || ["$ house"="schlecht"] dann ... um den Job zu erledigen