คำถามติดแท็ก stdin

8
จะเขียนสคริปต์ที่รับอินพุตจากไฟล์หรือจาก stdin ได้อย่างไร?
เราจะเขียนสคริปต์ที่ยอมรับอินพุตจากอาร์กิวเมนต์ชื่อไฟล์หรือจาก stdin ได้อย่างไร ตัวอย่างเช่นคุณสามารถใช้lessวิธีนี้ หนึ่งสามารถดำเนินการและค่าเท่ากันless filenamecat filename | less มีวิธี "นอกกรอบ" ง่าย ๆ ในการทำเช่นนั้น? หรือฉันจำเป็นต้องคิดค้นวงล้อใหม่และเขียนตรรกะเล็กน้อยในสคริปต์หรือไม่


7
ล้าง stdin ก่อนอ่าน
ฉันมีสคริปต์ทุบตีต่อไปนี้: # do some time consuming task here read -p "Give me some input: " input ในขณะที่คุณอาจเดาได้ว่าหากผู้ใช้กดปุ่มสุ่มบางอย่างระหว่าง "งานที่ต้องใช้เวลามาก" ข้อมูลที่ไม่ต้องการจะถูกนำมาพิจารณาด้วยเช่นกัน ฉันจะล้างstdin(หรืออย่างน้อยไม่สนใจมัน) ก่อนที่ฉันจะออกคำสั่งอ่านได้อย่างไร
14 linux  bash  shell  stdin 

3
Windows จะเปลี่ยนเส้นทางพารามิเตอร์ไฟล์ไปยัง stdout ได้อย่างไร (Windows เทียบเท่า `/ dev / stdout`)
คอนโซล Windows: เครื่องมือ A สามารถเขียนข้อมูลไบนารีไปยังไฟล์ แต่ไม่มีตัวเลือกสำหรับบอกให้ใช้ stdout เครื่องมือ B สามารถอ่านข้อมูลไบนารีจาก stdin และประมวลผลข้อมูลในนั้น ฉันจะรับเอาต์พุตจาก A ไพพ์ถึง B โดยไม่ต้องใช้ไฟล์ระดับกลางได้อย่างไร ในคำอื่น ๆ : เทียบเท่า Windows /dev/stdoutคืออะไร? --jeroen
13 windows  pipe  stdout  stdin 

2
การระบุจุดสิ้นสุดของอินพุตมาตรฐาน
วิธีการอย่างใดอย่างหนึ่งบ่งชี้ว่าอย่างใดอย่างหนึ่งได้เสร็จสิ้นการทดสอบใน stdin? ตัวอย่างเช่นสมมติว่าฉันต้องการเข้ารหัส 'สีน้ำเงิน' โดยใช้ MD5 (ฉันรู้ว่า MD5 นั้นไม่ปลอดภัย แต่สำหรับตัวอย่างนี้เท่านั้น) ฉันเหนื่อย user$ blue | md5 ซึ่งฉันได้นำไปสู่การทำความเข้าใจเป็นวิธีการที่ท่อหนึ่งอินพุตเพื่อ stdin แต่มันไม่ทำงาน แต่ถ้าฉันเพิ่งเข้า user$ md5 ฉันสามารถป้อนคำว่า 'สีน้ำเงิน' แต่ฉันจะระบุ md5 ได้อย่างไรว่าฉันป้อนข้อความเสร็จแล้ว

3
สองโปรแกรมที่มี StdIn และ StdOut เชื่อมโยงกัน
สมมติว่าฉันมีสองโปรแกรมที่เรียกว่าและProgramA ProgramBฉันต้องการเรียกใช้ทั้งสองอย่างพร้อมกันในตัวแปลภาษา Windows cmd แต่ฉันต้องการStdOutของProgramAติดยาเสพติดกับStdInของProgramBและStdOutการProgramBติดยาเสพติดไปของStdInProgramA บางสิ่งเช่นนี้ ________________ ________________ | | | | | StdIn (== ← === ← == (StdOut | | โปรแกรม A | | โปรแกรม B | | | | | | StdOut) == → === → ==) StdIn | | ________________ | | ________________ | มีคำสั่งให้ทำเช่นนี้ - …

1
เชลล์ลำดับการเปลี่ยนเส้นทางสตรีมมาตรฐานหรือ 2> & 1 1> / dev / null เทียบกับ 1> / dev / null 2> & 1
ใครช่วยอธิบายความแตกต่างได้ไหม บางคนคิดว่าเป็นแนวปฏิบัติที่ดีที่สุดหรือไม่? ถ้าฉันจำถูกต้องฉันอย่างนั้นอ่านดังนั้นสิ่งนี้1>/dev/nullควรนำหน้านี้:2>&1 ls -al /doesNotExists 2>&1 1>/dev/null ls -al /doesNotExists 1>/dev/null 2>&1 ls -al /doesNotExists 1>&2 2>/dev/null ls -al /doesNotExists 2>/dev/null 1>&2 ls -la /doesNotExists 2<&1 1>/dev/null ls -la /doesNotExists 2<&1 2>/dev/null ls -la /doesNotExists 1<&2 1>/dev/null ls -la /doesNotExists 1<&2 2>/dev/null ls -la /doesNotExists 1>/dev/null 2<&1 ls -la …

1
ข้อความ“ stdin: ไม่ใช่ tty” จาก scp
ฉันได้รับข้อความนี้เมื่อฉันคัดลอกไฟล์โดยใช้ SCP "stdin: is not a tty"ไปยังเซิร์ฟเวอร์ มันทำให้ฉันหายไปได้อย่างไร? การถ่ายโอนก็โอเค
2 scp  tty  stdin 

3
เนื้อหาของ / dev / disk0 (/ dev / sda ฯลฯ ) สามารถใช้เป็น stdin ได้หรือไม่?
ฉันกำลังเรียนรู้เกี่ยวกับ /dev ระบบแฟ้ม ฉันเริ่มด้วย /dev/sd* (Linux) และ /dev/disk* (OS X) และฉันพบว่ามีพฤติกรรมที่น่าสนใจ ถ้าฉันวิ่ง: $ sudo xxd -l 1024 /dev/disk0 ฉันได้รับผลลัพธ์ต่อไปนี้: 0000000: 33c0 8ed0 bc00 7c8e c08e d8be 007c bf00 3.....|......|.. 0000010: 06b9 0002 fcf3 a450 681c 06cb fbb9 0400 .......Ph....... 0000020: bdbe 0780 7e00 007c 0b0f 850e 0183 c510 ....~..|........ 0000030: …
1 hard-drive  dev  stdin 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.