私の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[@]}]}