1行のコードの途中で別のプログラムにパイプ

1行のコードの途中で別のプログラムにパイプ

私は画面に表示される特定のバーコードを選択し、それをクリップボードにテキストとして提供できる単純なbash一行スクリプトを作成しようとしています。この目的のために、画面の一部をgnome-screenshotPNGファイルとしてキャプチャし、ファイルを確認し、zbarimg出力される内容を貼り付けるために使用できるように設計されたbashスクリプトを作成しましたxclip

これが私が書いたものです:

tfile=$(mktemp -u -p ~).png &&  gnome-screenshot -a -f $tfile &&  zbarimg -q --raw $tfile | xclip; rm $tfile

画面の一部(正確にgnome-screenshot実行する必要があるタスク)をキャプチャするように要求するこのスクリプトを実行した直後にスクリーンショットファイルが作成されますが、何も出力されないxclipように永遠に実行され、入力を待っているようですzbarimg

この問題を解決するための提案がある人はいますか?

ベストアンサー1

マウスの中央ボタンをクリックした場合:

tfile=$(mktemp -u -p ~).png &&  gnome-screenshot -a -f $tfile ; cat <(zbarimg -q --raw $tfile) | xclip ; rm $tfile

右クリックの場合:

tfile=$(mktemp -u -p ~).png &&  gnome-screenshot -a -f $tfile ; cat <(zbarimg -q --raw $tfile) | xclip -selection clipboard ; rm $tfile

おすすめ記事