正在尝试创建Ruby脚本。我想将包含命令的字符串附加到文件中

正在尝试创建Ruby脚本。我想将包含命令的字符串附加到文件中,ruby,Ruby,我应该将几个mysqldump字符串(在本例中我对其进行了简化;通常第2行将用户名和密码作为选项)附加到SQL文件中 问题是第2行,当我试图调用Bash操作符'>'来追加字符串时。脚本没有追加,而是调用mysqldump命令本身 如何将字符串“mysqldump”存储到文件backup_file.sql中?我想用与第2行相同的方法:通过Bash自动追加。为什么不使用纯ruby来完成呢?比如: mysqldump = "mysqldump" `#{mysqldump} > backup_fi

我应该将几个mysqldump字符串(在本例中我对其进行了简化;通常第2行将用户名和密码作为选项)附加到SQL文件中

问题是第2行,当我试图调用Bash操作符'>'来追加字符串时。脚本没有追加,而是调用mysqldump命令本身


如何将字符串“mysqldump”存储到文件backup_file.sql中?我想用与第2行相同的方法:通过Bash自动追加。

为什么不使用纯ruby来完成呢?比如:

mysqldump = "mysqldump"
`#{mysqldump} > backup_file.sql`

假设您在一个数组中有转储..

为什么不使用纯ruby呢?比如:

mysqldump = "mysqldump"
`#{mysqldump} > backup_file.sql`

假设您在一个数组中有转储文件。

如果您试图附加您所说的“like”,并且不覆盖目标文件,请使用
>
而不是
。以下是脚本的工作版本:

File.open("backup_file.sql", "w") do |f|
  dump_lines.each do |line|
    f.puts line
  end
end
您还可以执行以下操作:
system%Q{echo“{mysqldump}”>>“{target\u dir}”}

. 就个人而言,如果您想要一个纯ruby解决方案/独立于系统的解决方案,我会说使用而不是在脚本中进行系统调用

如果您试图附加您所说的“like”而不是覆盖目标文件,请使用
>
而不是
。以下是脚本的工作版本:

File.open("backup_file.sql", "w") do |f|
  dump_lines.each do |line|
    f.puts line
  end
end
您还可以执行以下操作:
system%Q{echo“{mysqldump}”>>“{target\u dir}”}

. 就个人而言,如果您想要一个纯ruby解决方案/独立于系统的解决方案,我会说使用而不是在脚本中进行系统调用

你是说
echo{mysqldump}>backup_file.sql
?@BroiSatse关于你需要
echo
是正确的。我想补充一点,bash中的append操作符是
>
,而不是
操作符将在每次使用时覆盖
备份文件.sql
的全部内容。您到底想做什么,创建一个包含多个架构内容的.sql文件?或者创建一个包含多个命令本身的文件?在您的示例中,可能使用变量名称以外的值?@Broi是的,我想做一些类似echo的事情。但我不能从Ruby内部调用echo;它不存在。我是否需要在某个地方或我缺少的某个地方使用反勾号?您已经在反勾号,因此它将被发送到您的系统,因此是的,您可以使用echo.:)你是说
echo{mysqldump}>backup_file.sql
?@BroiSatse关于你需要
echo
是正确的。我想补充一点,bash中的append操作符是
>
,而不是
操作符将在每次使用时覆盖
备份文件.sql
的全部内容。您到底想做什么,创建一个包含多个架构内容的.sql文件?或者创建一个包含多个命令本身的文件?在您的示例中,可能使用变量名称以外的值?@Broi是的,我想做一些类似echo的事情。但我不能从Ruby内部调用echo;它不存在。我是否需要在某个地方或我缺少的某个地方使用反勾号?您已经在反勾号,因此它将被发送到您的系统,因此是的,您可以使用echo.:)你说得对。这是我一直在寻找的,echo是我需要的。你说得对。这是我一直在寻找的,echo是我所需要的。这可能行得通,但我遵循的是一个例子,他们使用的是更简单的方法。这可能行得通,但我遵循的是一个例子,他们使用的是更简单的方法。