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

อินพุตมาตรฐาน (stdin, file descriptor 0) คืออินพุตสตรีมไปยังโปรแกรม

22
คุณอ่านจาก stdin อย่างไร
ฉันพยายามที่จะทำบางส่วนของรหัสกอล์ฟท้าทาย stdinแต่พวกเขาทั้งหมดต้องมีการป้อนข้อมูลที่จะนำมาจาก ฉันจะได้รับสิ่งนั้นใน Python ได้อย่างไร
1470 python  stdin 

9
แนวทางปฏิบัติที่ดีที่สุดกับ STDIN ใน Ruby?
ฉันต้องการจัดการกับอินพุตบรรทัดคำสั่งใน Ruby: > cat input.txt | myprog.rb > myprog.rb < input.txt > myprog.rb arg1 arg2 arg3 ... วิธีที่ดีที่สุดที่จะทำคืออะไร? โดยเฉพาะอย่างยิ่งฉันต้องการจัดการกับ STDIN ที่ว่างเปล่าและฉันหวังว่าจะได้โซลูชันที่สง่างาม #!/usr/bin/env ruby STDIN.read.split("\n").each do |a| puts a end ARGV.each do |b| puts b end
307 ruby  stdin 

11
ฉันจะส่งผ่านสตริงไปยัง subprocess.Popen (โดยใช้อาร์กิวเมนต์ stdin) ได้อย่างไร
ถ้าฉันทำต่อไปนี้: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] ฉันเข้าใจ: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' เห็นได้ชัดว่าวัตถุ cStringIO.StringIO นั้นไม่ได้อยู่ใกล้กับเป็ดพอที่จะให้เหมาะสมกับ subprocess.Popen ฉันจะแก้ไขสิ่งนี้ได้อย่างไร
280 python  subprocess  stdin 

15
วิธีการอ่านจากไฟล์หรือ STDIN ใน Bash?
สคริปต์ Perl ต่อไปนี้ ( my.pl) สามารถอ่านได้จากไฟล์ในบรรทัดคำสั่ง args หรือจาก STDIN: while (<>) { print($_); } perl my.plจะอ่านจาก STDIN ในขณะที่จะอ่านจากperl my.pl a.txt a.txtมันสะดวกมาก สงสัยว่ามี Bash เทียบเท่าใน?
244 bash  stdin 

10
สับสนเกี่ยวกับ stdin, stdout และ stderr หรือไม่
ฉันค่อนข้างสับสนกับวัตถุประสงค์ของไฟล์ทั้งสามนี้ หากความเข้าใจของฉันถูกต้องstdinเป็นไฟล์ที่โปรแกรมเขียนลงในคำร้องขอเพื่อเรียกใช้งานในกระบวนการstdoutเป็นไฟล์ที่เคอร์เนลเขียนเอาต์พุตและกระบวนการที่ร้องขอให้เข้าถึงข้อมูลจากและstderrเป็นไฟล์ที่เข้าสู่ ซึ่งข้อยกเว้นทั้งหมดจะถูกป้อน เมื่อเปิดไฟล์เหล่านี้เพื่อตรวจสอบว่าสิ่งเหล่านี้เกิดขึ้นจริงหรือไม่ฉันไม่พบสิ่งใดเลยที่จะแนะนำ! สิ่งที่ฉันอยากรู้คือจุดประสงค์ของไฟล์เหล่านี้คืออะไรตอบคำถามด้วยศัพท์แสงทางเทคโนโลยีน้อยมาก!
230 linux  stdout  stdin  stderr 

6
วิธีอ่านจาก stdin ทีละบรรทัดในโหนด
ฉันต้องการประมวลผลไฟล์ข้อความที่มีโหนดโดยใช้การเรียกบรรทัดคำสั่งเช่น: node app.js < input.txt แต่ละบรรทัดของไฟล์จะต้องถูกประมวลผลแยกกัน แต่เมื่อประมวลผลแล้วบรรทัดที่ถูกลืมสามารถถูกลืมได้ ด้วยการใช้ฟังข้อมูลของ stdin ฉันได้รับไอน้ำอินพุตที่มีขนาดเป็นไบต์ดังนั้นฉันจึงตั้งค่านี้ process.stdin.resume(); process.stdin.setEncoding('utf8'); var lingeringLine = ""; process.stdin.on('data', function(chunk) { lines = chunk.split("\n"); lines[0] = lingeringLine + lines[0]; lingeringLine = lines.pop(); lines.forEach(processLine); }); process.stdin.on('end', function() { processLine(lingeringLine); }); แต่ดูเหมือนว่าเลอะเทอะมาก ต้องนวดรอบรายการแรกและสุดท้ายของอาร์เรย์บรรทัด ไม่มีวิธีที่สง่างามกว่านี้อีกหรือ?
177 node.js  stdin 

6
ส่งสตริงไปยัง stdin
มีวิธีในการทำเช่นนี้อย่างมีประสิทธิภาพในทุบตี: /my/bash/script < echo 'This string will be sent to stdin.' ฉันรู้ว่าฉันสามารถส่งออกท่อจากเสียงสะท้อนเช่นนี้: echo 'This string will be piped to stdin.' | /my/bash/script

6
จะเปิดทุกไฟล์ในโฟลเดอร์ได้อย่างไร?
ฉันมี python script parse.py ซึ่งในสคริปต์เปิดไฟล์ให้พูด file1 แล้วทำบางสิ่งบางอย่างอาจพิมพ์จำนวนอักขระทั้งหมด filename = 'file1' f = open(filename, 'r') content = f.read() print filename, len(content) ตอนนี้ฉันกำลังใช้ stdout เพื่อนำผลลัพธ์ไปยังไฟล์เอาต์พุตของฉัน - เอาต์พุต python parse.py >> output อย่างไรก็ตามฉันไม่ต้องการทำไฟล์นี้ด้วยไฟล์เองมีวิธีดูแลไฟล์ทุกไฟล์โดยอัตโนมัติหรือไม่? ชอบ ls | awk '{print}' | python parse.py >> output แล้วปัญหาคือฉันจะอ่านชื่อไฟล์จาก standardin ได้อย่างไร? หรือมีฟังก์ชั่นบิวท์อินบางตัวในการทำ ls และงานเหล่านั้นได้อย่างง่ายดาย? ขอบคุณ!
148 python  file  pipe  stdout  stdin 

9
วิธีหลอกให้แอปพลิเคชันคิดว่า stdout เป็นเทอร์มินัลไม่ใช่ไปป์
ฉันกำลังพยายามทำสิ่งที่ตรงกันข้ามกับ " ตรวจหาว่า stdin เป็นเทอร์มินัลหรือท่อหรือไม่ " ฉันกำลังเรียกใช้แอปพลิเคชันที่เปลี่ยนรูปแบบผลลัพธ์เนื่องจากตรวจพบไพพ์บน STDOUT และฉันต้องการให้คิดว่าเป็นเทอร์มินัลแบบโต้ตอบเพื่อให้ได้ผลลัพธ์เดียวกันเมื่อเปลี่ยนเส้นทาง ฉันคิดว่าการห่อไว้ในexpectสคริปต์หรือใช้proc_open()ใน PHP จะทำ แต่ไม่ได้ มีความคิดเห็นอะไรบ้าง?
147 bash  terminal  pipe  stdin 


6
ตรวจสอบว่า stdin เป็นขั้วหรือท่อ?
เมื่อฉันรัน " python" จากเทอร์มินัลโดยไม่มีข้อโต้แย้งมันจะแสดงเชลล์โต้ตอบของ Python เมื่อฉันรัน " cat | python" จากเทอร์มินัลมันจะไม่เปิดโหมดโต้ตอบ อย่างไรก็ตามโดยไม่ได้รับอินพุตใด ๆ ก็ตรวจพบว่าเชื่อมต่อกับท่อ ฉันจะตรวจจับที่คล้ายกันใน C หรือ C ++ หรือ Qt ได้อย่างไร
118 c++  c  qt  pipe  stdin 

6
nodejs วิธีอ่านการกดแป้นพิมพ์จาก stdin
เป็นไปได้ไหมที่จะฟังการกดแป้นพิมพ์ขาเข้าในสคริปต์ nodejs ที่กำลังรันอยู่ หากฉันใช้process.openStdin()และฟัง'data'เหตุการณ์ของมันอินพุตจะถูกบัฟเฟอร์จนกว่าจะขึ้นบรรทัดใหม่ถัดไปดังนี้: // stdin_test.js var stdin = process.openStdin(); stdin.on('data', function(chunk) { console.log("Got chunk: " + chunk); }); วิ่งสิ่งนี้ฉันได้รับ: $ node stdin_test.js <-- type '1' <-- type '2' <-- hit enter Got chunk: 12 สิ่งที่อยากเห็น: $ node stdin_test.js <-- type '1' (without hitting enter yet) Got chunk: 1 ฉันกำลังมองหา …
118 input  node.js  stdin 

14
จะอ่านบรรทัดจากคอนโซลใน C ได้อย่างไร?
วิธีที่ง่ายที่สุดในการอ่านบรรทัดเต็มในโปรแกรมคอนโซล C คืออะไรข้อความที่ป้อนอาจมีความยาวผันแปรและเราไม่สามารถตั้งสมมติฐานเกี่ยวกับเนื้อหาได้
108 c  io  console  stdin 

9
วิธีการส่งค่าของตัวแปรไปยัง stdin ของคำสั่ง?
ฉันกำลังเขียนเชลล์สคริปต์ที่ควรปลอดภัยเช่นไม่ส่งผ่านข้อมูลที่ปลอดภัยผ่านพารามิเตอร์ของคำสั่งและไม่ควรใช้ไฟล์ชั่วคราว ฉันจะส่งตัวแปรไปยัง stdin ของคำสั่งได้อย่างไร หรือถ้าเป็นไปไม่ได้จะใช้ไฟล์ชั่วคราวสำหรับงานดังกล่าวได้อย่างไร?
105 security  bash  stdin 

3
วิธีไพพ์อินพุตไปยัง Bash ในขณะที่วนซ้ำและเก็บรักษาตัวแปรหลังจากลูปสิ้นสุดลง
Bash อนุญาตให้ใช้: cat <(echo "$FILECONTENT") Bash ยังอนุญาตให้ใช้: while read i; do echo $i; done </etc/passwd เพื่อรวมสองสิ่งนี้ก่อนหน้านี้สามารถใช้ได้: echo $FILECONTENT | while read i; do echo $i; done ปัญหาสุดท้ายคือมันสร้างเชลล์ย่อยและหลังจากที่ตัวแปร while ลูปสิ้นสุดลง iไม่สามารถเข้าถึงได้อีกต่อไป คำถามของฉันคือ: วิธีการบรรลุสิ่งนี้: while read i; do echo $i; done <(echo "$FILECONTENT")หรือกล่าวอีกนัยหนึ่ง: ฉันจะแน่ใจได้อย่างไรiมีชีวิตอยู่ในขณะที่วนซ้ำ? โปรดทราบว่าฉันตระหนักถึงการใส่คำสั่ง while เข้าไป{}แต่สิ่งนี้ไม่สามารถแก้ปัญหาได้ (ลองนึกภาพว่าคุณต้องการใช้ฟังก์ชัน while loop in และiตัวแปรreturn …
88 bash  while-loop  stdin  pipe 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.