我已经写了 2 个脚本,感谢大家对我的帮助。
现在我想写一个脚本,以1:4的比例随机运行这2个脚本。我的文件名为1.sh和2.sh。
我想生成一个从 1 到 4 的数字,然后使用 if 条件,这样如果生成的数字是 1,则运行 1.sh,否则运行 2.sh。我写了下面的脚本,但它不起作用,我认为 if 条件行有问题,你能帮我解决这个问题吗?
va1=$((1 + RANDOM % 4))
if va1= 1 ; then bash 1.sh; else bash 2.sh; fi
最后,我想运行这个脚本 4500 次。所以我将这个脚本保存为 random.sh
然后我会在终端中写入:
for i in {1..4500}; do bash random.sh; done
请帮我编写 random.sh 脚本,因为我的 if 条件行中缺少某些内容,因此它不起作用。我编写的运行脚本 4500 次的行是否正确?最后,是否可以运行一个脚本,该脚本反过来将运行 2 个脚本,它们都位于同一目录中。
答案1
以 4 分之一的概率运行 4500 次迭代:
#!/bin/bash
declare -A a=()
b=4500
for ((c=1; c<$b; c++)); do
(($RANDOM < 8192)) && ((a[if]++)) || ((a[else]++))
done
for d in if else; do
LC_ALL=C printf "%4s ~ %0.2f%%\n" \
$d $(bc -l <<< "100 / ($b / ${a[$d]})")
done
答案2
我做到了 :)
# 后面是澄清
va1=$((1 + RANDOM % 2497))
#I generate a random number from 1 to 2497
if [ $va1 -gt 29 ]
#If the generated number is greater than 29
then
bash C60.sh
# then run the script C60.sh
else
bash TAPC.sh
#If any number less than 29 or 29 itself then run TAPC.sh
fi
#end of the if statement
我改变了问题本身的数字,但您可以应用任何数字。