我有一个ruby脚本名称分析,我通过传递参数
从bash执行#!/usr/bin/env ruby
script here
执行:
./analysis -d parameter1 -p parameter2 parameter3
我每次都传递不同的参数多次执行此脚本。 有没有办法从shell脚本执行这些多个ruby脚本?
答案 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
这里一个重要的警告是,只有当您的参数中没有空格时,这才有效。让我知道如果你不是这样,我可以尝试改进上面的脚本来处理它。