繁体   English   中英

许多参数传递给Rails中的脚本

[英]Many parameters passed to script in Rails

我成功地将一个参数传递给Rails中的bash脚本:

par = @repository.repo_name
@result = %x[script/delete_repo.sh #{par}]

现在,我需要将2个参数传递到不同的脚本中。 该解决方案不起作用:

par1 = params[:repository][:repo_name1]
par2 = params[:repository][:repo_name2]
@result = %x[script/rename_repo.sh #{par1} #{par2}]

我要使用的脚本是:

#!/bin/sh
mv repositories/$1 repositories/$2

如何在Rails中向存储的bash脚本发送更多参数?

par1 = params[:repository][:repo_name1]
par2 = params[:repository][:repo_name2]
@result = %x[script/rename_repo.sh #{par1} #{par2}]

如果par1par2可以嵌入空格,则应将其嵌入双引号或单引号中:

@result = %x[script/rename_repo.sh "#{par1}" "#{par2}"]

要么:

@result = %x[script/rename_repo.sh '#{par1}' '#{par2}']

但是,而不是创建一个子shell,当你使用这恰好%x或反引号,使用内置在能力fileutils中的mv文件:

require 'fileutils'
@result = FileUtils.mv(par1, par2)

我不了解%x。

`sh script/delete_repo.sh #{par1} #{par2}`

应该管用。

`-反引号

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM