Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby在文件和标准输入之间切换_Ruby_Input_Stdin_Pipe - Fatal编程技术网

Ruby在文件和标准输入之间切换

Ruby在文件和标准输入之间切换,ruby,input,stdin,pipe,Ruby,Input,Stdin,Pipe,如何创建一个可以读取的变量。如果某个文件存在,它将从中读取,否则它将从标准输入中读取。比如: input = File.open("file.txt") || in 这不管用,但我认为应该经常这样做,但我找不到一个好方法来做。这对你有用吗 input = File.exist?("file.txt") ? File.open("file.txt") : STDIN 我认为ruby有能力将STDIN首次使用之前未使用的参数视为标准输入文件的文件名。请参阅:尽管我讨厌神秘的命名模式,但这非常有用

如何创建一个可以读取的变量。如果某个文件存在,它将从中读取,否则它将从标准输入中读取。比如:

input = File.open("file.txt") || in

这不管用,但我认为应该经常这样做,但我找不到一个好方法来做。

这对你有用吗

input = File.exist?("file.txt") ? File.open("file.txt") : STDIN

我认为ruby有能力将STDIN首次使用之前未使用的参数视为标准输入文件的文件名。

请参阅:

尽管我讨厌神秘的命名模式,但这非常有用。同意。嗯,这里有ARGF。仍然很神秘,但不如$那么糟糕。您也可以使用
$stdin
而不是
stdin