草庐IT

STDIN_FILENO

全部标签

Ruby STDIN.getc 在接收时不读取字符

似乎RubyIO#getc在返回字符之前等待接收到\n。如果您尝试运行此脚本:STDOUT.sync=trueSTDIN.sync=truewhiledata=STDIN.getcSTDOUT.puts"Chararrived"end对于发送到标准输入的每个字符,它将返回一个“Chararrived”,但仅在发送了\n之后。即使我写STDIN.sync=true,似乎所有字符都被缓冲了。有谁知道如何让脚本在一个字符发送到STDIN后立即打印“Chararrived”? 最佳答案 有ananswerfromMatz:)更新此外,您还可

ruby - 将 Hex STDIN/ARGV/gets 转换为 ruby​​ 中的 ASCII

我的问题是如何将cmdARGV的STDIN或从十六进制转换为ascii我知道如果我将十六进制字符串分配给变量,它会在我打印后转换前hex_var="\x41\41\x41\41"putshex_var结果会是AAAA但我需要通过(ARGV或gets)从命令行获取值说我有这行s=ARGVputss#anotherideaputss[0].gsub('x','\x')然后我跑了rubygett.rb\x41\x41\x41\x41我得到了\x41\x41\x41\x41有没有办法让它工作? 最佳答案 您在这里要处理几个问题。您已经尝试解

ruby - STDIN 的非阻塞读取线?

当正确设置为非阻塞模式时,我不明白为什么IO方法不能在STDIN上工作:require'fcntl'stdin_flags=STDIN.fcntl(Fcntl::F_GETFL)pstdin_flags#32770pSTDIN.fcntl(Fcntl::F_SETFL,stdin_flags|Fcntl::O_NONBLOCK)#0pSTDIN.fcntl(Fcntl::F_GETFL)#34818#at_exit{STDIN.fcntl(Fcntl::F_SETFL,stdin_flags&~Fcntl::O_NONBLOCK)}STDIN.readline#thiscallbloc

ruby - 当 stdin 用作 ruby​​ 源时,将参数传递给 ruby​​ 解释器

我构建了一个railsdeploy仪表板,它在远程机器上启动一个ruby​​脚本来更新已部署的应用程序。运行脚本的命令如下所示:sshtest-host-02"wget-q-O-http://server/deploy.rb|sudoruby">/tmp/update-test-host-02.log2>&1现在我需要将参数传递给deploy.rb脚本。例如要部署哪个构建。将参数传递给deploy.rb的最佳方式是什么? 最佳答案 Ruby遵循允许您使用-指定标准输入的标准约定,它允许您在之后传递参数。$ruby---HELLOpu

ruby - 摆脱 ruby​​ stdin/stdout 缓冲

我正在尝试编写一个ruby​​脚本来过滤尾部文件的输出(tail-flog.log|./my_filter.rb)。我相信我已经将stdin和stdout设置为同步读取,但我仍然看到我的输出以延迟批处理的形式出现,一次20行左右,而不是实时的。我可以用如下简单的代码重现问题:#!/usr/bin/ruby$stdout.sync=true$stdin.sync=trueARGF.eachdo|line|putslineend我是否缺少消除缓冲的设置或类似的东西?编辑:澄清一下,如果我只是tail-f日志,那么我会看到每秒写入很多行。 最佳答案

c - stdout 和 STDOUT_FILENO 的区别

我想知道LinuxC中stdout和STDOUT_FILENO之间的区别。经过一番搜索,我得出以下结论。你能帮我复习一下并纠正其中的任何错误吗?谢谢stdout属于C语言的标准I/O流;其类型为FILE*并在stdio.h中定义STDOUT_FILENO,具有int类型,在unistd.h中定义。它是LINUX系统的文件描述符。在unistd.h中解释如下:Thefollowingsymbolicconstantsshallbedefinedforfilestreams:STDERR_FILENOFilenumberofstderr;2.STDIN_FILENOFilenumberof

c - stdout 和 STDOUT_FILENO 的区别

我想知道LinuxC中stdout和STDOUT_FILENO之间的区别。经过一番搜索,我得出以下结论。你能帮我复习一下并纠正其中的任何错误吗?谢谢stdout属于C语言的标准I/O流;其类型为FILE*并在stdio.h中定义STDOUT_FILENO,具有int类型,在unistd.h中定义。它是LINUX系统的文件描述符。在unistd.h中解释如下:Thefollowingsymbolicconstantsshallbedefinedforfilestreams:STDERR_FILENOFilenumberofstderr;2.STDIN_FILENOFilenumberof

linux - 从 STDIN 读取数据时压缩文件

在Linux上从标准输入读取数据时是否可以压缩(创建压缩存档)数据? 最佳答案 是的,为此使用gzip。最好的方法是读取数据作为输入并将压缩后的文件重定向到输出文件,即cattest.csv|gzip>test.csv.gzcattest.csv会将数据作为标准输出发送,使用管道符号gzip会将该数据作为标准输入读取。确保将gzip输出重定向到某个文件,因为压缩数据不会写入终端。 关于linux-从STDIN读取数据时压缩文件,我们在StackOverflow上找到一个类似的问题:

linux - 从 STDIN 读取数据时压缩文件

在Linux上从标准输入读取数据时是否可以压缩(创建压缩存档)数据? 最佳答案 是的,为此使用gzip。最好的方法是读取数据作为输入并将压缩后的文件重定向到输出文件,即cattest.csv|gzip>test.csv.gzcattest.csv会将数据作为标准输出发送,使用管道符号gzip会将该数据作为标准输入读取。确保将gzip输出重定向到某个文件,因为压缩数据不会写入终端。 关于linux-从STDIN读取数据时压缩文件,我们在StackOverflow上找到一个类似的问题:

linux - 不会分配伪终端,因为 stdin 不是终端

我正在尝试编写一个shell脚本,它在远程服务器上创建一些目录,然后使用scp将文件从我的本地计算机复制到远程服务器上。到目前为止,这是我所拥有的:ssh-tuser@server每当我运行它时,我都会收到以下消息:Pseudo-terminalwillnotbeallocatedbecausestdinisnotaterminal.脚本永远挂起。我的公钥在服务器上是受信任的,我可以很好地运行脚本之外的所有命令。有什么想法吗? 最佳答案 尝试ssh-t-t(或简称ssh-tt)强制伪tty分配,即使stdin不是终端。另请参阅:Te