
私はUbuntuにいます。いくつかのパラメータ(改行文字で区切られた)をコピーし、次のものを使用できます。シェルこのように出力してみてください
$ xsel
arg1
arg2
arg3
arg4
...
さて、これらの各パラメータを別のコマンドで使用し、パラメータと同じコマンドを実行したいと思います。
だから私は努力しました
$ xsel | mycommand "constantArgument" $1
ただし、これはmycommand
最初のパラメータに対してのみ行われます。各パラメータについてどうすればよいですか?
答え1
あなたは単に使用することができますxargs
xsel | xargs -n1 echo mycommand
-n1
mycommand のパラメータを意味しますが、これは練習実行なので、実行する内容を示します。実行するには削除してください。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
どちらも簡単で完了します。