我有一個運行的 ruby?? 腳本,ruby myscr.rb ./text_file.txt它讀取輸入gets并將其寫入檔案,但gets似乎是從檔案讀取而不是終端輸入。如何強制它以與 相同的方式從終端獲取輸入gets?
uj5u.com熱心網友回復:
Kernel#gets是故意以這種方式實作的(盡管它仍然讓我感到驚訝,盡管我在 Ruby 中作業了很多年):
從 ARGV(或 $*)中的檔案串列中回傳(并分配給 $_)下一行,如果命令列上沒有檔案,則從標準輸入中回傳。
要僅從終端讀取輸入,這些輸入通過標準輸入流進入您的腳本,您可以gets直接使用以下方法$stdin:
File.open(ARGV.first, "w") do |f|
f.puts($stdin.gets)
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/426752.html
