Wie übergebe ich in Bash die Ausgabe des ersten Befehls an ein Befehlszeilenargument des zweiten Befehls?


0

Zum Beispiel:

mycommand.py -a `cat myfile.json`

In diesem Beispiel brauche ich den Inhalt von myfile.json als Wert an den übergeben werden -a Argument von mycommand.py. Diese fast funktioniert, aber ich muss den Inhalt der Datei (der doppelte Anführungszeichen und Zeilenumbrüche enthält) in Anführungszeichen setzen. Diese nicht Arbeit:

mycommand.py -a '`cat myfile.json`'

Die Verwendung der einfachen Anführungszeichen verhindert, dass die Backtick-Anführungszeichen funktionieren.


Hausaufgabenproblem?
— mdpc

Antworten:


3

Verwenden Sie doppelte Anführungszeichen.

mycommand.py -a "`cat myfile.json`"

3
Dang! Du tippst schneller als ich! Wenn ich noch 42 Sekunden habe, kann ich vorschlagen, das zu ändern mycommand.py -a "$(cat myfile.json)".
— Scott

Vielen Dank. Dies ist so offensichtlich, dass ich fast das Gefühl habe, ich sollte die Frage löschen ...
— Landon Kuhn

Oh, wahrscheinlich wird jemand eine Suche durchführen und feststellen, dass zuvor eine gleichwertige Frage gestellt und beantwortet wurde, und dann wird diese als Duplikat geschlossen.
— Scott

Ich sah mich um ... es ist ziemlich schwer zu suchen.
— Landon Kuhn

Es ist schwer, nach etwas zu suchen, wenn Sie nicht wissen, wie es heißt ( command substitution für zukünftige Referenz).
— Dean
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.