Что вы подразумеваете под открытием новой подсказки ?
Существует несколько способов автоматического запуска Zsh. :При запуске новой оболочки выполняется несколько файлов запуска (в зависимости от того, как запускается оболочка ).Во время работы можно определить precmd, который запускается перед выполнением каждого приглашения. Строка подсказки может содержать встроенную команду. Есть и другие возможности.
Я рекомендую запустить новую оболочку с включенной трассировкой(-x
)и проанализировать вывод. Это должно показать вам, откуда берется mv
.
#!/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%==*}
).