执行随机命令

k07*_*73l 4 bash random

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

[mysterious command] ("command1", "command2", "command3")
Run Code Online (Sandbox Code Playgroud)

Kus*_*nda 12

把你的命令放在一个数组中。

cmds=( "cmd1" "cmd2" "cmd3" )
Run Code Online (Sandbox Code Playgroud)

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

i=$(( RANDOM % ${#cmds[@]} ))
Run Code Online (Sandbox Code Playgroud)

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

${cmds[i]}
Run Code Online (Sandbox Code Playgroud)

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

${cmds[RANDOM % ${#cmds[@]}]}
Run Code Online (Sandbox Code Playgroud)