Ruby交互式shell命令
我想制作一个从shell执行命令的ruby shell脚本。 当shell命令需要用户的答案时会发生什么?
例如,创建一个新的play框架应用程序:
play new calimero ~ _ _ ~ _ __ | | __ _ _ _| | ~ | '_ \| |/ _' | || |_| ~ | __/|_|\____|\__ (_) ~ |_| |__/ ~ ~ play! 1.2.7.2, http://www.playframework.org ~ ~ The new application will be created in /home/anquegi/src/11paths/buildsdeb/toni_build/devops-tools/packaging/packwithruby/calimero ~ What is the application name? [calimero] ~ <=== here asks to the user
使用ruby shell脚本,我想向用户提示并获取它,ruby脚本等待它,我按回车键,它可以工作。
value = %x(play new calimero)
等到用户点击介绍。 我应该怎么做呢? 我应该在问题出现前打印出来吗?
原文: https : //stackoverflow.com/a/6488335/2724079
这也可以通过IO.expect来完成
require 'pty' require 'expect' PTY.spawn("play new calimero") do |reader, writer| reader.expect(/What is the application name/) writer.puts("\n") end
这等待生成的进程显示“什么是应用程序名称”以及何时看到它打印定义的字符串(新行)。
- NameError:未初始化的常量Faker
- 如何使用Nokogiri :: XML :: Reader来解析大型XML文件?
- 无法在Ruby on Rails 4.1.4中安装activerecord
- Ruby中的懒惰斐波那契
- 从Ruby中包含的文件中访问变量
- ActionView :: Template :: Error(PG :: UndefinedFunction:ERROR:运算符不存在:整数~~未知
- Heroku Rails Net :: HTTP:OpenSSL :: SSL :: SSLError:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败
- 在以下ruby语法中,`&`是什么意思?
- 使用poltergeist与代理?