2017-01-13 2 views
0

Welchem ​​Ansatz bei rekombinieren bash Argumenten verwendet werden kann, zum Beispiel:Recombine bash Argumente, wenn Pipeline mit

echo "arg3 arg1 arg2" | ... 

, um Argumente in zufälliger Art rekombinieren können anwendbar sein:

... | some_command -arg1=$3 -arg2=$1 -arg3=$2 --interpretator-arg=$0 --anoter-arg=$1$2$3 
+0

Suchst du definitiv 'xargs' hier? Können Sie uns einen konkreteren Anwendungsfall zeigen? –

+0

Related: http://StackOverflow.com/q/3770432/2088135 –

+0

entfernen 'Xargs' von der ursprünglichen Frage. Befehl ist nicht notwendig. –

Antwort

1

Eine Möglichkeit wäre, verwenden read:

echo "arg3 arg1 arg2" | { read -r a b c; some_command ...; } 

yo Jetzt Sie können die Argumente "$a", "$b" und "$c" verwenden, wie Sie möchten.

Ich denke, Ihr Beispiel etwas künstlich ist, aber Sie können eine Pipeline in diesem Fall vermeiden:

{ read -r a b c; some_command ...; } <<< "arg3 arg1 arg2" 

Wenn die Argumente wirklich von einem Befehl kommen, dann können Sie einen Befehl Substitution verwenden:

{ read -r a b c; some_command ...; } < <(command_producing_arguments) 

Beachten Sie, dass das Semikolon am Ende wichtig ist, wenn die Befehlsgruppe { } alle in einer Zeile geschrieben wird.

Verwandte Themen