Ruby 无法使用终端将单引号写入双引号
我正在尝试创建一个包含以下代码行的文件(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)没
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')