Questions tagged «stdin»

标准输入(stdin,文件描述符0)是程序的输入流。


9
在Ruby中使用STDIN的最佳做法?
我想处理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
如何从Bash中的文件或STDIN中读取?
以下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的文本文件: node app.js < input.txt 文件的每一行都需要单独处理,但是一旦处理完,输入行可能会被忘记。 使用标准输入的数据侦听器,我得到了按字节大小分块的输入流,因此进行了设置。 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); }); 但这似乎草率。必须在行数组的第一项和最后一项周围进行按摩。有没有更优雅的方式做到这一点?
174 node.js  stdin 

6
发送字符串到标准输入
有没有一种方法可以有效地在bash中执行此操作: /my/bash/script < echo 'This string will be sent to stdin.' 我知道我可以通过管道传递回声的输出,例如: echo 'This string will be piped to stdin.' | /my/bash/script

6
如何打开文件夹中的每个文件?
我有一个python脚本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
如何欺骗应用程序以使其标准输出是终端而不是管道
我正在尝试执行与“ 检测stdin是终端还是管道? ” 相反的操作。 我正在运行一个正在更改其输出格式的应用程序,因为它检测到STDOUT上的管道,并且我希望它认为它是一个交互式终端,以便在重定向时获得相同的输出。 我当时认为将其包装在expect脚本中或proc_open()在PHP中使用可以实现,但事实并非如此。 有什么想法吗?
147 bash  terminal  pipe  stdin 


6
检测stdin是终端还是管道?
当我python从终端不带任何参数执行“ ”时,它将弹出Python交互式shell。 当我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 我正在寻找一个等效于例如ruby的nodejsgetc 这可能吗?
118 input  node.js  stdin 


9
如何将变量的值传递给命令的标准输入?
我正在写一个应该在某种程度上安全的shell脚本,即不要通过命令的参数传递安全数据,最好不要使用临时文件。如何将变量传递给命令的标准输入?或者,如果不可能,如何正确使用临时文件执行此类任务?
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")换句话说:如何确定iwhile循环中是否还存在? 请注意,我知道将while语句包含在其中,{}但这不能解决问题(假设您要在函数中使用while循环并返回i变量)
87 bash  while-loop  stdin  pipe 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.