Я создаю сценарий оболочки, который делает то, что вам нужно, т.е. проверяет подключение к сети, а затем отключает обновления. Затем вызовите скрипт из cron.
Сначала найдите исходную команду завершения. Пример:
$ complete | grep git
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git
Теперь добавьте их в свой сценарий запуска (например, ~ / .bashrc):
# copy the original statement, but replace the last command (git) with your alias (g)
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main g
# load dynamically loaded completion functions (may not be required)
_completion_loader git
Возможно, строка _completion_loader не требуется. Но для некоторых ситуаций функция завершения загружается динамически только после ввода команды и нажатия TAB в первый раз. Поэтому, если вы не использовали исходную команду и попробуйте псевдоним + TAB, вы можете получить сообщение об ошибке «bash: completion: function not found».
Последнее обновление bash-upstream перемещено и немного переименовано. Теперь это:
source /usr/share/bash-completion/completions/git
__git_complete g __git_main
Используйте это в последних версиях Ubuntu (например, 14.04, также Fedora 22+), когда вы сталкиваетесь:
completion: function `_git' not found
во время завершения.