Ist es möglich mehrere Befehle in eine 'if' Anweisung zu pipen?

8

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.

    
Hxwk 16.12.2013, 14:08
quelle

3 Antworten

11

Verwenden Sie $(...) , um die Ausgabe eines Befehls in eine Zeichenfolge zu erfassen:

%Vor%     
choroba 16.12.2013, 14:14
quelle
0

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.

%Vor%

und so weiter.

Sie können auch Variablen anstelle von Befehlen verwenden, aber es wird ein bisschen seltsam.

    
Igor Chubin 16.12.2013 14:15
quelle
0

Sie könnten stattdessen einen Befehl wie folgt verwenden: if ["$ house"="nett"] || ["$ house"="schlecht"] dann ... um den Job zu erledigen

    
Nicki Johanna 08.04.2016 20:13
quelle

Tags und Links