GNUパラレルプログレスバーのZenityキャンセルボタン

GNUパラレルプログレスバーのZenityキャンセルボタン

〜のようにGNUパラレルマニュアル表示するには、並列zenityの進行状況バーを使用できます。

seq 1000 | parallel -j30 --bar '(echo {};sleep 0.1)' \
    2> >(zenity --progress --auto-kill) | wc

ただし、この例ではキャンセルボタンは機能しません。私はそれについて読んだエマルジョンより一般的に使用されるコマンド(非並列など)を使用する場合は、このボタンを使用してください。キャンセルボタンのしくみに関する追加情報しかし、それは私にとってあまり役に立ちませんでした。並列はまったく異なる方法で使用されているようで、プロセスを停止するためにキャンセルボタンを取得する方法がわかりません。

私は主に2> >andについて混乱していますwc|Fastを使うと

添付:お知らせしたら、並行メーリングリストでこの問題について話したことがあります。

ベストアンサー1

Zenityは2行を読むように設計されています。 1つは進行状況バー、もう1つは「#」で始まる進行状況テキストです。

for ((i=0;i<=100;i++));do
  echo "$i"                  # bar
  echo "#percent done $i"    # text
  sleep .1
done
| zenity --progress

そうかもしれないと思います。- パブstderr に進行状況を記録しますが、閉じないか、行末に改行文字を記録するオプションです。これは新しいラインを期待していたZenityを中断しました。回避策は、デフォルトでファイル記述子2のstderrに改行文字を印刷することです。

seq 1000 | parallel -j30 --bar '(echo {}; echo >&2; sleep 0.1)' \
    2> >(zenity --progress --auto-kill) | wc

おすすめ記事