Bash 如何生成随机数,然后将其传递给命令行参数?
例如,如果我有以下命令:Bash 如何生成随机数,然后将其传递给命令行参数?,bash,shell,command-line-arguments,Bash,Shell,Command Line Arguments,例如,如果我有以下命令: python generate.py--outdir=out--trunc=1--seeds=1288755,90543468 我想使用bash生成随机数,并将它们放在seeds参数中,使seeds介于特定的间隔(例如,1-8000)之间。像这样: rand\u seed\u gen=im\u a\u func\u生成\u 4\u随机\u seed\u伪码 python generate.py--outdir=out--trunc=1--seeds=rand\u se
python generate.py--outdir=out--trunc=1--seeds=1288755,90543468
我想使用bash生成随机数,并将它们放在seeds
参数中,使seeds介于特定的间隔(例如,1-8000)之间。像这样:
rand\u seed\u gen=im\u a\u func\u生成\u 4\u随机\u seed\u伪码
python generate.py--outdir=out--trunc=1--seeds=rand\u seed\u gen
编辑:
还有,有没有一种方法可以将随机整数的数量相乘,而不显式地逐个传递?例如(同样是伪代码):
${RANDOM}*10
返回由10个随机整数组成的逗号分隔的列表。您可以这样做
python generate.py --outdir=out --trunc=1 --seeds=${RANDOM},${RANDOM},${RANDOM}
从
随机的
每次引用此参数时,它都会扩展为一个随机整数
介于0和32767之间。将值赋给此变量会使
随机数发生器。如果“随机”未设置,它将失去其特殊属性
属性,即使随后将其重置
但是如果你需要设定一个范围,你能做的就是
#生成随机数,用逗号替换空字节
randvars=$(shuf-z-i1-8000-n4 | tr'\0'','))
#删除最后一个逗号
randvars=${randvars::-1}
python generate.py--outdir=out--trunc=1--seeds=${randvars}
其中,
-i 1-8000
是范围,-n 4
是您想要返回的金额。请参阅我在原始帖子中的编辑。另外,是否有一种方法可以将随机整数的数量相乘,而无需单独显式传递每个整数?例如(同样是伪代码):${RANDOM}*10
返回一个由10个随机整数组成的逗号分隔的列表。@dedede编辑了这篇文章,加入了一种设置范围的方法。当我逐行设置时,它不起作用,但当我将整个内容插入参数时,它起作用了,比如`python generate.py--outdir=out--trunc=1--seeds=`randvars=$(shuf-z-i1-8000-n4 | tr'\0'',');randvars=${randvars::-1};echo${randvars}`@dededede你可以取消引用--seeds=“${randvars}”
部分,那么做--seeds=${randvars}
这是否回答了你的问题?@dedede:请不要在一篇文章中问两个问题。为此创建两篇不同的帖子。