0
我有一個rake任務,我希望可以給它選擇stdin,以下任何一種情況可以工作:(可選)允許將STDIN傳遞給rake任務
rake my_task
cat foo.txt | rake my_task
的問題是,我沒有一個可靠的方法來檢查STDIN是否對方案。這是我當前的嘗試,它只是掛起不定:
instructions = STDIN.read.split("\n") if STDIN.tty?
我加入了STDIN.tty?
閱讀how-can-you-check-for-stdin-input-in-a-ruby-script後。它是返回true
當我調用它與rake my_task
(無stdin)
這些充滿希望的一個http://cobwwweb.com/4-ways-to-pass-arguments-to-a-rake-task選項爲你工作 – fanta
我認爲你只需要反轉你的條件,也就是說,如果它是_not_ tty(它是一個管道),你想讀'$ stdin'。 – matt
@matt你是對的,隨時可以添加答案或我會 –