한 줄의 코드 중간에 다른 프로그램으로 파이프

한 줄의 코드 중간에 다른 프로그램으로 파이프

나는 화면에 보이는 특정 바코드를 선택하고 이를 클립보드에 텍스트로 제공할 수 있는 간단한 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

관련 정보