ランダムコマンドの実行

ランダムコマンドの実行

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

おすすめ記事