执行随机命令

执行随机命令

我希望我的 bash 脚本执行下面给出的随机命令。例如

[mysterious command] ("command1", "command2", "command3")

答案1

将您的命令放入数组中。

cmds=( "cmd1" "cmd2" "cmd3" )

$RANDOM是一个随机数,${#cmds[@]}计算结果为数组的长度(本例中为 3)。 $(( RANDOM % ${#cmds[@]} ))将是一个介于 0 和比数组长度小 1 之间的随机数cmds,即 0、1 或 2。

i=$(( RANDOM % ${#cmds[@]} ))

执行以下操作将从$cmds对应于索引的字符串中挑选出来$i并将其作为命令执行。

${cmds[i]}

或者一次性完成(看起来有点可怕):

${cmds[RANDOM % ${#cmds[@]}]}

答案2

这应该可以实现您正在寻找的内容。

COMMANDS=("command1" "command2" "command3")
$(shuf -n1 -e "${COMMANDS[@]}")

获取数组并用于shuf生成随机命令。

更新:根据@steeldriver更改了shuf命令

相关内容