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:请不要在一篇文章中问两个问题。为此创建两篇不同的帖子。