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.