gpt4 book ai didi

ruby - 如何告诉 STDIN 停止阅读?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:54 33 4
gpt4 key购买 nike

所以我正在研究使用 Ruby 构建出色的命令行应用程序。在第 81 页,我们应该使用 STDIN 将多个任务输入到项目中。

 File.open(global_options[:filename], 'a+') do |todo_file|
if task_names.empty?
puts "Reading new tasks from stdin..."
task_names = STDIN.readlines.map {|a| a.chomp}
end
tasks = 0
task_names.each do |task|
todo_file.puts [task, Time.now].join(', ')
tasks+=1
end
if tasks == 0
raise "You must provide tasks on the command-line or standard input"
end
end

将任务输入到项目中的通常方法是这样的 $todo new "Rake leaves 但使用上面的代码我们可以得到下面示例中的内容。

它确实有效。但是我如何告诉 STDIN 停止收听呢?关于如何使用它的例子是这个......

$ todo new
Rake leaves
Take out trash
Clean garage
Put away dishes
^D

^D 代表什么?

最佳答案

这是一个 end-of-file character .您可以在 Unix 系统上使用 Ctrl+D 或在 Windows 上使用 Ctrl+Z 按字面键入。显示 Ctrl 修饰符的传统方式是使用 ^ 前缀,例如 ^D

请注意,这将完全关闭标准输入。如果您想在输入这些行后读取更多数据,则需要检查输入本身是否有不同的分隔符——例如,一个空行。

关于ruby - 如何告诉 STDIN 停止阅读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14885143/

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