Donnerstag, Juni 4, 2020

Semikolon auf der Kommandozeile in linux

ich bin mit meinem Antrag in linux durch die Bereitstellung von Eingaben in die Befehlszeile. Mein input-Feld enthalten, ein argument, das enthält „;“(Semikolon) intern.(Beispiel:123;434;5464).
Diese werden analysiert, mit UTF8String codieren und zu senden.
Aber wenn ich Sie benutze, wie dieser, in der Erstausbildung selbst bin ich immer der,

 bash: 434: command not found
 bash: 5464: command not found

Und wenn ich capture traffic-die Ausgabe enthält nur 123 statt 123;434;5464
Aber wenn ich ohne Semikolon (BSP.: 123:434:5464),nicht immer alle problem-Ausgang kommenden richtig als 123:434:5464

Zeigen Sie mir, wie zu geben, Kommandozeilen-Eingabe, indem Sie mit Semikolon zu kommen Ausgabe. Gibt es eine bestimmte syntax zu verwenden, während Sie mit Semikolon.
Läuft bei mir wie unten

./runASR.sh -ip 10.78.242.4 -port 3868 -sce 10.78.241.206 -id 85;167838865;1385433280

wo -id-Feld enthält den Wert mit der Ausgabe.

1 Kommentar

  1. 30

    ; behandelt ein Ende des Befehls Charakter. So 123;456;5464 bash ist in der Tat 3 Befehle. Passieren solche meta-escape-Zeichen escape-Zeichen \.

    ./command 123\;456\;5464

    Oder Einfach Zitat mit einfachen Anführungszeichen (Doppel-Zitat wertet die innere Schnur) (Danke Triplee, ich vergaß, das zu erwähnen)

    ./command '123;456;5464'
    • Oder zitieren Sie. command '123;456;5464'
    • Doppelte Anführungszeichen würde tatsächlich funktionieren hier (aber einzelne Zitate sind in der Regel besser); Sie befürchten, dass die $ -und back-tick-Symbole innerhalb von doppelten Anführungszeichen.
    • tut der folgende Befehl wartet, bis der Vorherige Befehl fertig ausgeführt?
    • Der Befehl nach ; nicht ausgeführt, bis die Ausführung des Befehls auf der linken Seite der ; ist getan.

Kostenlose Online-Tests