Выполнение произвольной команды

Я хочу, чтобы мой скрипт bash выполнял случайную команду ниже. Например

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

    2 Solutions collect form web for “Выполнение произвольной команды”

    Поместите свои команды в массив.

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

    $RANDOM – это случайное число, а ${#cmds[@]} оценивается по длине вашего массива (3 в этом примере). $(( RANDOM % ${#cmds[@]} )) будет случайным числом от 0 до единицы меньше длины массива cmds , то есть 0, 1 или 2.

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

    Выполнение следующего выберет строку из $cmds соответствующую индексу $i и выполнит ее как команду.

     ${cmds[i]} 

    или все за один раз (что выглядит немного ужасно):

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

    Это должно выполнить то, что вы ищете.

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

    Принимает массив и использует shuf для генерации случайной команды.

    UPDATE: Изменена команда shuf на @steeldriver

    Interesting Posts

    Создание единого выходного потока из трех других потоков, создаваемых параллельно

    su -l root -c "echo $ HOME" печатает мой пользовательский дом

    в чем смысл 1 в конце awk-скрипта

    Почему OOM-killer иногда не может убить ресурсных свиней?

    lsusb не перечисляет накопитель SCSI, подключенный через USB (мост SATA)?

    Как автоматически определять и записывать в usb с переменными пространствами в его имени

    ip-туннель от подсети к локальному хосту

    почему убить работать по-разному на номера работ, чем PID?

    Что поддерживает иерархия в cgroup?

    который загрузил таблицу страниц, сопоставленную идентификаторам?

    Linux, GNU GCC, ld, скрипты версий и двоичный формат ELF. Как это работает?

    Инициировать скрипт сервера с ноутбука

    Моя вкладка alt + только показала только оконные окна – что я нажал?

    Монтирование процесса доступно только для чтения

    Программа для дешифрования файла тени linux

    Linux и Unix - лучшая ОС в мире.