- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我主要是想通过 stdin 将命令发送到 julia session 。谁能给我一些指示,说明为什么这段代码似乎从来没有在 Julia 这边执行任何事情?看起来命令被传递给了 julia,但从未真正运行过,或者 julia 从未将它的输出传递给输出流......我希望最终在这里的输出流中看到 4(2 + 2 的结果)...... . 有什么想法吗?
require 'pty'
require 'expect'
class Session
def initialize
@output, @input, @pid = PTY.spawn('julia -q')
end
def exec(cmd)
@input.write(cmd + "\n")
@output.each { |line| print line }
end
end
session = Session.new()
session.exec("2 + 2")
最佳答案
好吧,我想我明白发生了什么:
您需要给 julia 一些时间来启动。
您需要发送一个带有\n 的\r 来告诉 julia 阅读该行。
这对我有用:
require 'pty'
require 'expect'
class Session
def initialize
@output, @input, @pid = PTY.spawn('julia -q')
sleep 5
# @output.expect(/julia\>/) would be nicer!
end
def exec(cmd)
@input.write(cmd + "\r\n" # This is control-m
@output.each { |line| print line }
end
end
session = Session.new()
session.exec("2 + 2")
注意事项:
我认为使用 @output.expect("julia\>")
会更好,而不是笨重的 sleep 5。但 sleep 证明了它失败的原因。
关于ruby - 通过 ruby PTY 与 Julia 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976607/
我正在尝试使用库 node-pty在一个使用 vue-cli 搭建的项目中。当我启动程序时,我收到以下错误: error in ./node_modules/node-pty/build/Releas
我打开了一个 issue in creack/pty for this question ,但实际上我认为它可能属于这里,因为它可能更多地与我对库的使用有关,而不是库有任何问题。 我正在使用 webs
我一直在阅读本页示例中的 ptys:http://www.rkoucha.fr/tech_corner/pty_pdip.html .我有两个问题: 使用 pty 和使用管道之间的区别或最重要的区别是
我正在尝试向 ruby-newt 模块添加一些自动化测试。我的代码似乎可以工作,但仍然需要在终端手动点击 ENTER 才能完成。 例如在下面的代码中,\t会切换到下一个按钮,\r会按下按钮,两个命令都
我试图在代表 PTY 的文件描述符上设置读取超时。我在 termios 中设置了 VMIN = 0 和 VTIME = 10,我希望在字符可用时返回,或者如果没有字符可用则在一秒钟后返回。但是,我的程
我正在编写一个程序来创建 pty,然后 fork 并执行 ssh以 pty 的从属端作为其 stdin 的命令。完整的源代码在这里。 using namespace std; #include #i
我在尝试使用 Node 安装 pty.js 时遇到了一个不寻常的问题: 如果我运行 npm install pty.js 我收到这个错误: > pty.js@0.3.1 install /Use
我一直在用 c++ 编写一个程序,它可以 fork 一个 pty。一切顺利,除了一件事:当 root 运行程序时,pty 以 root 用户身份登录。同样,如果用户“x”运行该程序,则新的 pty 将
我有一个脚本,如果它在 tty 上,它会打印彩色输出。他们中的一堆并行执行,所以我不能把他们的标准输出到 tty。我也无法控制脚本代码(强制着色),所以我想通过 pty 伪造它。我的代码: invoc
我有一个特殊情况,我想伪造一个 tty 到在 ThreadPoolExecutor 中运行的子进程(想想 xargs -p)并捕获输出. 我创建了以下似乎串行运行良好的: import context
我正在编写测试脚本,需要在后台每隔一段时间收集“free -m”输出。但是,watch cmd 发送控制序列以删除旧输出,认为它在终端中。但我不想要那样,我想要贯穿整个过程的值(value)。这可能吗
我正在打开一个 PTY(在 Python/Linux 中)并写入它。我可以通过 minicom 完美地读取它。但是,我无法在另一个 Python(或 C++)程序中读取它。这是一个最小化的示例: pr
我编写了一个嵌入式应用程序(vt52 终端仿真器),在基于 Linux ROM 的系统上运行,没有内置 ptys;和Unix98坏了。但由于我必须有 pty 才能使终端工作...我手动将旧式 BSD
我正在尝试使用 Node 进程来启动交互式 docker session ,然后自动执行一些命令: var spawn = require('pty.js').spawn; var proc = sp
我正在尝试制作一个小模块,它打开 ssh 连接并允许通过 ssh 发送命令并返回命令的输出。因此,应该只有一个 ssh 连接(这样多个命令就不会导致自动阻止)。我知道 paramiko,但我无法使用它
我是这样创建的 pty 设备的所有者权限是crw-w---- mknod pty1 c 1 1 cat > pty1 告诉我不允许操作。 我稍后要做的是使用 open 从程序打开文件并调用 write
这个问题在这里已经有了答案: How to make output of any shell command unbuffered? (5 个答案) 关闭 9 年前。 我正在寻找一种方法来欺骗 Li
当使用 PTY 主/从对控制进程时,我想向相关进程指示 stdin 已关闭并且我没有更多内容要发送,但我仍想接收进程的输出。 要注意的是,我只有一个文件描述符(PTY“master”),它处理来自子进
我正在使用 pty 读取非阻塞进程的标准输出,如下所示: import os import pty import subprocess master, slave = pty.openpty() p
我编写了一个简单的包装器脚本,用于在命令失败时重复命令,称为 retry.py .但是,因为我想查看子命令的输出,所以我不得不使用一些 pty 技巧。这适用于 rsync 等程序,但 scp 等其他程
我是一名优秀的程序员,十分优秀!