gpt4 book ai didi

ruby - ruby 中的同一个程序如何接受来自用户的输入以及命令行参数

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:18 24 4
gpt4 key购买 nike

我的 ruby​​ 脚本从命令行参数获取某些输入。它检查是否缺少任何命令行参数,然后提示用户输入。但是我无法使用 gets 从用户那里获得输入。

示例代码:test.rb

name=""
ARGV.each do|a|
if a.include?('-n')
name=a
puts "Argument: #{a}"
end
end
if name==""
puts "enter name:"
name=gets
puts name
end

运行脚本:ruby test.rb raghav-k

错误结果:

test.rb:6:in `gets': No such file or directory - raghav-k (Errno::ENOENT)
from test.rb:6:in `gets'
from test.rb:6:in `<main>'

如有指点,将不胜感激谢谢桑迪

最佳答案

如果没有命令行参数,

gets 只会从真正的 $stdin(即用户)读取。否则它将把这些参数作为文件连接成一个虚拟的 $stdin

您可以使用 STDIN.gets 来确保您始终使用正确的函数。

您也可以随时从 ARGV 中删除参数(或一次删除所有参数),您的 gets 应该可以正常工作。

关于ruby - ruby 中的同一个程序如何接受来自用户的输入以及命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7399618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com