[英]How would I force Kernel#gets to use STDIN#gets in a rake task?
因此,我試圖使Rake任務干燥,該任務運行需要用戶輸入的腳本,並且遇到了與此海報相同的問題 -默認情況下,僅調用gets
假設rake參數(在這種情況下為db:seed
)是應該從中讀取的文件,當然不存在。 我周圍這讓由只調用STDIN.gets
,工作正常,但我很想能夠只使用gets
我可以使用的方式puts
(耙似乎也沒有問題STDOUT
默認) -作為一個靜態方法。
有什么方法可以強制在Rake中從STDIN
讀取Kernel#gets
? (或更籠統地說,當表面上傳遞了命令行參數時,是否有任何方法可以強制Kernel#gets
從STDIN
讀取?)這是不好的做法嗎?
(由@ the-tin-man在此評論中回答)
在任何情況下(包括Rake),強制Kernel#gets
從STDIN
讀取,在DRYness中幾乎沒有什么優勢。 盡管可以做到(通過修改$stdin
),但是不應該這樣做,因為它既脆弱又容易出錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.