Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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_Linux - Fatal编程技术网

Ruby 无法使用终端将单引号写入双引号

Ruby 无法使用终端将单引号写入双引号,ruby,linux,Ruby,Linux,我正在尝试创建一个包含以下代码行的文件(ruby行) 如果我把它打印出来,这就是我应该得到的 问题是我不能在终点站做这件事。我尝试了很多东西,比如: echo "puts File.read('/users')" > file_with_line.rb echo puts File.read('/users') > file_with_line.rb 和其他变体,但都不起作用。所有这些变体都给我一个错误,或者这个输出put File.read(/users)没

我正在尝试创建一个包含以下代码行的文件(ruby行)

如果我把它打印出来,这就是我应该得到的

问题是我不能在终点站做这件事。我尝试了很多东西,比如:

echo "puts File.read('/users')" > file_with_line.rb

echo puts File.read('/users') > file_with_line.rb
和其他变体,但都不起作用。所有这些变体都给我一个错误,或者这个输出
put File.read(/users)
没有单引号

这看起来很简单也很愚蠢,但我还没有成功地找到解决办法。
提前感谢。

您只需关闭双引号即可:

echo "puts File.read('/users')" > file_with_line.rb
下面是一个完整的示例:

bash-5.1$ echo "puts File.read('/users')" > file_with_line.rb
bash-5.1$ cat file_with_line.rb 
puts File.read('/users')

File.read('.users')
不会创建文件。它只是读取文件。如果要读取文件,请首先使用
file.write('/users',some text contents')
创建它。然后尝试使用您正在尝试使用的相同命令进行读取。注意:
put
不需要,
File.read
足以输出文件内容。@prashant谢谢您的回答!也许我没有正确地解释我自己。我将把这行代码放在一个文件中,这行代码本身与创建文件无关
echo puts File.read('/users')>File_with_line.rb
我只想能够从文件中执行,但问题是我的单引号有问题。我已经在Windows和Linux中测试了该命令——它产生了预期的结果。唯一可能的解释是,您对尝试创建文件的位置没有写入权限。@未知:所以问题基本上是,您想用程序创建一个文本文件,而不使用文本编辑器?这不是Ruby的问题,所以我建议删除Ruby标记。在您的具体示例中,第一种方法应该有效,因为在执行
echo
时没有收到错误消息。
cat file\u with_line.rb向您展示了什么?我错过了在帖子上写的内容,我试过了,但没有work@Unknown请尽量说得更具体些。例如,不是说“我尝试了这个”,而是说“我把下面的一行放在一个名为test.rb的文件中并运行了
ruby test.rb
”,或者不是说“给了我一个错误”,而是说“给了错误
”——:1:in`':未定义的局部变量或main:Object(namererror)
“@未知:不工作意味着什么?你能想出一个对你所遇到的问题更有用的描述吗?
bash-5.1$ echo "puts File.read('/users')" > file_with_line.rb
bash-5.1$ cat file_with_line.rb 
puts File.read('/users')