问题标签 [stdin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - 如何判断 STDIN 是否连接到 Perl 中的终端?
如何判断 STDIN 是否连接到 Perl 中的终端?
bash - 如何将标准输入从 shell 脚本重定向到 shell 脚本中的命令?
如何将标准输入从 shell 脚本重定向到 shell 脚本中的命令?我正在尝试将标准输入传递给 java System.in 流。
我想换
和
ruby - 如何将 STDIN 内容转换为数组?
我有一个包含以下内容的文件 INPUT:
我想像这样运行我的脚本:script.rb < INPUT 并让它将 INPUT 文件的内容转换为数组,在换行符上拆分。所以,我有类似 myArray = [123,456,789] 的东西。这是我尝试做的事情,但运气不佳:
我希望这会打印 3,但我得到了 15。我在这里真的很困惑。任何指针?
php - PHP标准输入?
我知道 PHP通常用于没有标准输入的 Web 开发,但 PHP 声称可以用作通用脚本语言,如果您确实遵循它的时髦的基于 Web 的约定。我知道 PHP 用 and 打印到(stdout
或任何你想调用的东西),这很简单,但我想知道 PHP 脚本如何从(特别是 with ,但任何输入函数都很好)获取输入,或者是这甚至可能吗?print
echo
stdin
fgetc()
ruby - 使用 Ruby 在标准输入上设置非规范模式
我正在使用 Ruby 制作一个简单的基于终端的游戏,我目前正在尝试想出一种从终端读取输入的方法。
到目前为止,我一直在使用gets
,但我想让游戏立即做出反应而不需要换行符(所以你不需要按一个键,然后输入)。
我发现我需要将终端置于非规范模式,我假设我可以通过调用$stdin.ioctl
. 问题是,我不确定我应该传递什么参数或标志,文档和搜索只会导致有关底层 C 函数的信息。
谁能告诉我我应该打电话给我$stdin.ioctl
吗?我在 OSX Leopard 上使用 Terminal.app/tcsh。
编辑:这就是我最终使用的,感谢 MarkusQ:
console - `tee` 命令等效于 *input*?
unixtee
命令将标准输入拆分为标准输出和一个文件。
我需要的是另一种工作方式,将多个输入合并到一个输出 - 我需要连接两个(或更多)命令的标准输出。
不确定这个应用程序的语义应该是什么——让我们假设每个参数都是一个完整的命令。
例子:
应该生成一个包含内容的文件
我试过
它不起作用。
旁注:我知道我可以将每个命令的输出附加到文件中,但我想一次性完成(实际上,我想将合并的输出通过管道传输到另一个程序)。
另外,我可以自己动手,但是只要我负担得起,我就很懒惰:-)
哦,是的,如果它在 Windows 中工作会很好(尽管我猜任何 bash/linux 风格的解决方案都可以通过 UnxUtils/msys/etc 工作)
unix - ksh:如何探测标准输入?
我希望我的 ksh 脚本具有不同的行为,具体取决于是否有通过 stdin 传入的内容:
检查 stdin 以查看它是否是终端 [ -t 0 ] 没有帮助,因为我的脚本是从其他脚本调用的。
如果 stdin 为“空”(第二种情况),则执行“cat <&0 >./tmp.dat”检查 tmp.dat 的大小会挂起等待来自 stdin 的 EOF。
如何检查标准输入是否为“空”?!
linux - 使用 Bash 将标准输入重定向到来自不同的终端
我想知道如何将脚本的标准输入从当前的 xterm 会话(即 /dev/pts/0)重定向到也使用 bash 运行的脚本(即 /dev/pts/1)?我有一个打开 3 个 xterm 窗口的 bash 脚本,我只想从其中一个窗口中获取输入,但我不知道该怎么做。任何帮助表示赞赏!谢谢。
编辑(从下面移动——OP提交了这个澄清作为答案)
我想我应该澄清一下我想做什么。我将从一个 pty 开始一个脚本,假设它是 /dev/pts/3。该脚本将打开 3 个 xterminal,比如说:/dev/pts/0、/dev/pts/1 和 /dev/pts/2。这 3 个新的 pty 是用户将要看到的。该脚本要求用户输入一些输入,我希望将用户的输入输入 /dev/pty/1 并且程序应该从那里获取它的信息。但是我尝试过这样做,但它不起作用。这是我的代码片段。
最后的 case 语句只是一个小占位符,用于查看输入是否真的有效。
.net - 如何在 WPF 应用程序中读取标准输入?
我试图弄清楚如何从我自己的 WPF 应用程序的标准输入流中读取,但我找不到获取流的方法。标准的做法,
立即返回 Null(Nothing)。我假设因为它不是控制台应用程序并且没有打开控制台窗口。如何在 WPF 应用程序中读取标准输入?
一些背景:我正在尝试读取由外部设备(磁卡读卡器)发送的文本,该设备将其数据发送到当前关注的应用程序的标准输入。如果需要,我可以将焦点放在 TextBox 上,然后从那里读取数据,但如果可能的话,我宁愿直接读取数据,以避免出现许多可能的问题。
编辑:尽管 Daniel Pratt 解决了我最初的问题,但弄清楚如何从标准输入中读取仍然会很好。如果您可以回答,我将更改已接受的答案。
c++ - 在 C++ 中忽略 std::cin 上的 EOF
我有一个实现交互式 shell 的应用程序,类似于 Python 控制台/irb 的工作方式。现在的问题是,如果用户不小心点击^D
EOF 并且我的getline()
调用返回一个空字符串,我将其视为“无输入”并再次显示提示。
然后这会导致打印提示的无限循环。
现在在 Python 中,我会通过 catch 来解决这个问题EOFError
,但在 C++ 中,我可以捕捉到没有异常,而且似乎没有设置cin
忽略 EOF。
有什么提示吗?