我有一个rake任务,我希望选择stdin,例如以下任何一种都可以起作用:
rake my_task
cat foo.txt | rake my_task
问题是我没有可靠的方法来检查STDIN是否被赋予该程序。这是我目前的尝试,它只是不确定地挂起:
instructions = STDIN.read.split("\n") if STDIN.tty?
我在阅读how-can-you-check-for-stdin-input-in-a-ruby-script后添加了STDIN.tty?
。当我使用true
(无标准输入)
rake my_task
答案 0 :(得分:0)
你只需要反转条件。你想要的是读取stdin,如果不 tty:
instructions = STDIN.read.split("\n") unless STDIN.tty?