Имейте в виду, что следующая команда:
source <(kubectl completion zsh)
просто получает выходные данные команды :
kubectl completion zsh
, которую генерирует kubectl autocompletion script
и выводит его на стандартный вывод . Вместо того, чтобы использовать его таким образом, вы можете просто перенаправить вывод в файл:
kubectl completion zsh > kubectl-autocompletion-script
изменить строку:
_complete kubectl 2>/dev/null
на:
_complete kubectl 2>~/logs.txt
илилюбая другая часть сценария, которая вам нравится.
Трудно догадаться, что может быть не так в вашем конкретном случае, но вы можете легко отладить сценарий . Просто для целей отладки вы можете попробовать запустить его как любой другой скрипт оболочки. Если при поиске сценария возникнут какие-либо ошибки (в основном это , запускающий его в текущей оболочке ), вы увидите эти ошибки также при запуске его в новой оболочке , которая, конечно,не повлияет на среду вашей запущенной оболочки, но сообщит вам, в чем может быть проблема.
Чтобы включить режим отладки, вам нужно использовать флаг -x
(или -xv
для подробного вывода):
zsh -x kubectl-autocompletion-script
Это должно сказать вам, где находится проблема.
Еще одна вещь: В качестве альтернативы добавлению source <(kubectl completion zsh)
к вашему ~/.zshrc
вы можете захотетьпоместите скрипт в /etc/zsh/zshrc.d/
, который в основном делает то же самое, но глобально, для всех пользователей.