cat случайно зависает в .zshenv

Вы можете использовать переменную 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/" \
)
0
24.08.2018, 23:28
1 ответ

Замедление произошло из-за hash. В одном из каталогов по умолчанию, которые локальные SA добавили в мой путь, было более 8000 записей.

Использование команды strace, предложенной Stéphane Chazelas , показало, что вызовы stat(), используемые hash, вызывали замедление.

Если я открывал другую оболочку сразу после этого, каждый stat()вызов выполнялся до 180 раз быстрее (, предположительно из-за кэширования ), что объясняет, почему замедление не происходило каждый раз.

В качестве исправления я удалил каталог из моего PATH. Если мне понадобятся какие-либо исполняемые файлы оттуда, я просто помещу символические ссылки на них в меньший каталог в моем PATH.

0
28.04.2021, 23:43

Теги

Похожие вопросы