次のような出力を生成するコマンドがあります。
$。/ command1
Word1 Word2 Word3
この3つの単語を、次のような別のコマンドの引数として渡します。
$コマンド2ワード1ワード2ワード3
Command1の出力を3つの異なる引数$ 1 $ 2 $ 3をcommand2に渡す方法は?
xargs
を使用できます。-t
フラグを使用すると、xargs
が冗長になり、実行するコマンドが出力されます。
./command1 | xargs -t -n1 command2
-n1
は、command2
のすべての呼び出しに渡される最大の引数を定義します。これが実行されます:
command2 Word1
command2 Word2
command2 Word3
command2
の1回の呼び出しの引数としてすべてが必要な場合は、次のように使用します。
./command1 | xargs -t command2
それは3つの引数でcommand2を呼び出します:
command2 Word1 Word2 Word3
「コマンド置換」、つまり1つのコマンドの出力を外部に埋め込む必要がある
command2 $(command1)
従来、これは次のように行うこともできます。
command2 `command1`
ただし、ネストすることはできないため、通常、この使用はお勧めしません。
例えば:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
使用する:
./test2.sh $(./test.sh)
b
これはあなたを助けると思います
コマンド1 | xargsコマンド2