GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So übergeben Sie die Befehlsausgabe als mehrere Argumente an einen anderen Befehl

Lösung 1:

Sie können xargs verwenden , mit dem -t Flag xargs wird ausführlich sein und die Befehle ausgeben, die es ausführt:

./command1 | xargs -t -n1 command2

-n1 definiert die maximalen Argumente, die jedem Aufruf von command2 übergeben werden . Dies wird ausgeführt:

command2 word1
command2 word2
command2 word3

Wenn Sie alle als Argument eines Aufrufs von command2 wollen benutze das:

./command1 | xargs -t command2

Das ruft command2 mit 3 Argumenten auf:

command2 word1 word2 word3

Lösung 2:

Sie möchten eine 'Befehlsersetzung', d.h. die Ausgabe eines Befehls in einen anderen einbetten

command2 $(command1)

Traditionell kann dies auch so gemacht werden:

command2 `command1`

aber diese Verwendung wird normalerweise nicht empfohlen, da Sie sie nicht verschachteln können.

Zum Beispiel:

test.sh:
#!/bin/bash
echo a b c

test2.sh

#!/bin/bash
echo $2

VERWENDUNG:

./test2.sh $(./test.sh)
b

Linux
  1. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  2. Befehlszeilenargumente an Bash-Skript übergeben?

  3. Wie übergibt man die Ausgabe eines Befehls als Argument an einen anderen?

  4. Linux-Befehlsausgabe als Parameter eines anderen Befehls

  5. Wie kann ich alle Argumente mit xargs mitten im Befehl in Linux übergeben

So verwenden Sie den Linux-xargs-Befehl

So aktivieren Sie den Zeitstempel in der Ausgabe des Linux-Verlaufsbefehls

So leiten Sie die Shell-Befehlsausgabe um

So übergeben Sie das Passwort an den SSH-Befehl in Linux

Wie verwende ich den xargs-Befehl unter Linux?

bash:wie man Befehlszeilenargumente mit Sonderzeichen übergibt