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.

Landon Kuhn
quelle
Hausaufgabenproblem?
mdpc

Antworten:

3

Verwenden Sie doppelte Anführungszeichen.

mycommand.py -a "`cat myfile.json`"
grawity
quelle
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