我有一个Ruby脚本名称分析,我从庆典传递参数shell脚本的Ruby脚本执行
执行#!/usr/bin/env ruby
script here
执行:
./analysis -d parameter1 -p parameter2 parameter3
我通过传递不同的多次执行这个脚本参数。 有没有办法从shell脚本执行这些多个ruby脚本?
我有一个Ruby脚本名称分析,我从庆典传递参数shell脚本的Ruby脚本执行
执行#!/usr/bin/env ruby
script here
执行:
./analysis -d parameter1 -p parameter2 parameter3
我通过传递不同的多次执行这个脚本参数。 有没有办法从shell脚本执行这些多个ruby脚本?
像这样的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行,全部3个参数,写入一个文件,例如,params.txt
。对于例如,
run1-param1 run1-param2 run1-param3
run2-param1 run2-param2 run2-param3
run3-param1 run3-param2 run3-param3
...
然后,您可以创建另一个bash脚本,比如说repeat-analysis.sh
读取每次1线并运行analysis.rb
与该行的参数。示例脚本如下:
#!/bin/bash
while read p1 p2 p3; do
./analysis.rb -d "$p1" -p "$p2" "$p3"
done
可以按如下方式运行此脚本:
$ ./repeat-analysis.sh < params.txt
这里一个重要的警告是,如果您的参数没有在其中的空间,这只会工作。让我知道,如果这不是真的,我可以尝试改进上面的脚本来处理。
感谢您的回答。为我工作。在我的情况下,没有参数的空间。 –
谢谢你的工作。 –
我也可以将参数传递给此shell脚本吗? –
刚刚编辑答案与如何做到这一点。 – PyroLemur