Хотя это очень старая тема, это устройство идеально подходит для прямого или случайного выбора файла / каталога для обработки (воспроизведения мелодий, выбора фильма для просмотра или книги для чтения и т. Д.).
В bash я считаю, что в общем случае верно, что вы не можете напрямую вкладывать любые два расширения одного и того же типа, но если вы можете разделить их каким-либо другим видом расширения, это можно сделать.
e=($(find . -maxdepth 1 -type d))
c=${2:-${e[$((RANDOM%${#e[@]}))]}}
Объяснение: e - это массив имен каталогов, c выбранный каталог, либо явно названный как $ 2,
${2:-...}
где ... альтернативный случайный выбор, заданный
${e[$((RANDOM%${#e[@]}))]}
где
$((RANDOM%...))
число, сгенерированное bash, делится на количество элементов в массиве e, заданное
${#e[@]}
с получением остатка (от оператора%), который становится индексом для массива e
${e[...]}
Таким образом, у вас есть четыре вложенных расширения.