用于ruby脚本执行的Shell脚本

时间:2016-09-14 16:21:54

标签: ruby bash shell

我有一个ruby脚本名称分析,我通过传递参数

从bash执行
#!/usr/bin/env ruby
script here

执行:

./analysis -d parameter1 -p parameter2 parameter3

我每次都传递不同的参数多次执行此脚本。 有没有办法从shell脚本执行这些多个ruby脚本?

2 个答案:

答案 0 :(得分:0)

像这样的shell脚本应该可以工作:

# Execute Ruby script multiple times with different parameters.

ruby ./analysis.rb -d parameter1 -p parameter2 parameter3
ruby ./analysis.rb -d parameter4 -p parameter5 parameter6
ruby ./analysis.rb -d parameter7 -p parameter8 parameter9

通过Bash脚本参数将变量传递给Ruby脚本:

# Include 9 arguments when calling the Bash script. Ruby script will be executed 3 times, with 3 of the arguments each time.
ruby ./analysis.rb $1 $2 $3
ruby ./analysis.rb $4 $5 $6
ruby ./analysis.rb $7 $8 $9

答案 1 :(得分:0)

对于脚本的每次调用,您可以将1行(包含所有3个参数)添加到文件中,例如params.txt。例如,

run1-param1 run1-param2 run1-param3
run2-param1 run2-param2 run2-param3
run3-param1 run3-param2 run3-param3
...

然后你可以创建另一个bash脚本,比如每次读取1行的repeat-analysis.sh,并使用该行的参数运行analysis.rb。下面的示例脚本:

#!/bin/bash

while read p1 p2 p3; do
    ./analysis.rb -d "$p1" -p "$p2" "$p3"
done

您可以按如下方式运行此脚本:

$ ./repeat-analysis.sh < params.txt

这里一个重要的警告是,只有当您的参数中没有空格时,这才有效。让我知道如果你不是这样,我可以尝试改进上面的脚本来处理它。