他のパラメータを使用してコマンドを繰り返し実行するには?

他のパラメータを使用してコマンドを繰り返し実行するには?

私はUbuntuにいます。いくつかのパラメータ(改行文字で区切られた)をコピーし、次のものを使用できます。シェルこのように出力してみてください

$ xsel
arg1
arg2
arg3
arg4
...

さて、これらの各パラメータを別のコマンドで使用し、パラメータと同じコマンドを実行したいと思います。

だから私は努力しました

$ xsel | mycommand "constantArgument" $1

ただし、これはmycommand最初のパラメータに対してのみ行われます。各パラメータについてどうすればよいですか?

答え1

あなたは単に使用することができますxargs

xsel | xargs -n1 echo mycommand 

-n1mycommand のパラメータを意味しますが、これは練習実行なので、実行する内容を示します。実行するには削除してください。echo

定数パラメータの場合

xsel | xargs -I {} -n1 echo mycommand "constantArgument" {}

答え2

xsel | while read line; do mycommand "$line"; done

またはそのようなもの。xargsコマンドライン引数を操作するために非常に強力なコマンドを使用することもできます。

答え3

少しカスタマイズのため:

printf "${CMD} %s ${ARG2}\n" `xsel` | sh -n

あなたは削除することができます-noexecuteどのように動作するかを理解してください。

効果があればあきらめてもいいsh正確にこれを行う:

. <<HERE /dev/stdin
    $(printf "${CMD} %s ${ARG2}\n" `xsel`)
HERE

またはより速く:

printf "${CMD} %s ${ARG2}\n" `xsel` | . /dev/stdin

どちらも簡単で完了します。

関連情報