Вы можете использовать переменную RANDOM
, определяемую bash:
URL=${URLLIST[ $(( RANDOM % ${#URLLIST[@]} )) ] }
где URLLIST — это массив, содержащий ваши URL-адреса:
URLLIST=( \
"http://xkcd.com/archive" \
"http://what-if.xkcd.com/" \
"http://blag.xkcd.com/" \
"http://store.xkcd.com/" \
)
Замедление произошло из-за hash
. В одном из каталогов по умолчанию, которые локальные SA добавили в мой путь, было более 8000 записей.
Использование команды strace
, предложенной Stéphane Chazelas , показало, что вызовы stat()
, используемые hash
, вызывали замедление.
Если я открывал другую оболочку сразу после этого, каждый stat()
вызов выполнялся до 180 раз быстрее (, предположительно из-за кэширования ), что объясняет, почему замедление не происходило каждый раз.
В качестве исправления я удалил каталог из моего PATH
. Если мне понадобятся какие-либо исполняемые файлы оттуда, я просто помещу символические ссылки на них в меньший каталог в моем PATH
.