クリップボードにコピーしたコマンドをそのまま実行する(応用編補足)

前回の補足

whileでやるよりxargsを使ったほうが
良いのでは?という人もいるかもしれないが、
xargsはコマンドしか受け付けず、組み込み関数であるevalをそのまま使うことができない。

やるなら下のように
$ xsel --clipboard --output | xargs -L1 -I{} bash -c 'eval {}'
 とする必要がある。

前回作成したclipexeと
実行にかかる時間を比較してみる。

下の2行のコマンドを実行するとする
zypper se postgresql
zypper se mysql

実行環境
OS:OpenSUSE 42 leap
CPU:Corei5
 メモリ 8M

timeコマンドで計測するために、
一度ファイルにスクリプトを書き込む。

$ echo 'clipexe' | cat > 'while.manner'

$ time source while.manner

実行時間は下のようになった
real 0m19.011s
user 0m3.256s
sys 0m0.444s

上と同様に
一度ファイルにスクリプトを作成する。
$ echo "xsel --clipboard --output | xargs -L1 -I{} bash -c 'eval {}'" |  cat  > 'xargs.manner'

$ time source xargs.manner

real 0m19.127s
user 0m3.308s
sys 0m0.445s

やはり、
わずかながら、whileを使ったほうが早い。


コメント

人気の投稿