Score:0

รับเอาต์พุตแรกจาก STDOUT และยุติกระบวนการ

ธง hn

ฉันต้องการสแกน QR-code เดียวและส่งคืนผลลัพธ์ไปยัง STDOUT ฉันค้นพบ ZBarซึ่งเป็นโปรแกรมเล็กๆ ที่เกือบจะทำทุกอย่างที่ฉันต้องการ

$zbarcam --raw

สแกนรหัส QR ด้วยกล้อง PC และส่งคืนข้อมูลไปยัง STDOUT อย่างไรก็ตาม มันไม่ได้ยุติลง โปรแกรมจะสแกนรหัสหลายชุดและส่งกลับ มันจะหยุดโดยการปิดหน้าต่างวิดีโอหรือส่งการขัดจังหวะเท่านั้น

โดยทั่วไปฉันจะรับเฉพาะเอาต์พุตแรกจาก STDOUT ยุติกระบวนการ แล้วส่งเอาต์พุตที่ได้รับไปยัง STDOUT อีกครั้งในบรรทัดคำสั่งได้อย่างไร ฉันอาจต้องการสคริปต์ทุบตีใช่ไหม

bac0n avatar
cn flag
ตัวเลือก `-1, --oneshot` ไม่ยุติ zbar หรือไม่
trizuz avatar
hn flag
ไม่มีตัวเลือกเช่นนี้
bac0n avatar
cn flag
ดูเหมือนว่าจะเปิดตัวใน [0.23.1](https://github.com/mchehab/zbar/releases/tag/0.23.1)
Score:0
ธง cn

โดยใช้ ทุบตีและสมมติว่ามีเพียงบรรทัดเดียวให้อ่าน (qrcode ไม่มีการขึ้นบรรทัดใหม่แบบฝัง) คุณสามารถลอง

(เสียงสะท้อน $BASHPID; exec zbarcam --raw ) | 
(อ่าน pid; IFS= read -r line; kill -hup "$pid"; printf "%s\n" "$line")

เดอะ $BASHPID เป็นเพราะ $$ ไม่เปลี่ยนแปลงใน subshells ดังนั้น parent shell pid ก็เช่นกัน เดอะ IFS= อ่าน -r ควรรักษาเครื่องหมายแบ็กสแลชและช่องว่างนำหน้าไว้ในอินพุต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา