Более эффективный синтаксический анализ строк/обработка массивов zsh

Что вы подразумеваете под открытием новой подсказки ?

Существует несколько способов автоматического запуска Zsh. :При запуске новой оболочки выполняется несколько файлов запуска (в зависимости от того, как запускается оболочка ).Во время работы можно определить precmd, который запускается перед выполнением каждого приглашения. Строка подсказки может содержать встроенную команду. Есть и другие возможности.

Я рекомендую запустить новую оболочку с включенной трассировкой(-x)и проанализировать вывод. Это должно показать вам, откуда берется mv.

0
12.11.2019, 05:10
1 ответ
#!/usr/bin/env zsh

packages=(${${(f)"$(pip3 list -o)"}[3,-1]}) || exit

if (($#packages)); then
    print -rl -- $packages
    PYTHONWARNINGS=ignore:DEPRECATION pip3 install -U ${packages%% *}
fi

было бы короче и немного больше похоже на zsh -, но я сомневаюсь, что это было бы намного быстрее.

Вы можете использовать pip's --format=freeze, чтобы избежать удаления заголовка. (дает вывод в формате package==1.2.3, для которого вам нужно изменить ${packages%% *}на${packages%==*}).

2
28.01.2020, 02:38

Теги

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