При попытке настроить программируемое завершение я столкнулся с поведением, которое я не понимаю.
Учитывая эти три сценария завершения, я понимаю их следующим образом:
$<TAB><TAB>
Начало строки -> используйте complete -E
-> если это не такt существует, используйте complete -D
-> если его не существует, используйте завершение Bash по умолчанию -> в строке нет слов -> используйте завершение команды.
$com<TAB><TAB>
Попытка завершить первое слово -> использовать завершение команды.
$command argu<TAB><TAB>
В строке есть хотя бы одно слово -> попытка дополнить аргумент -> использовать complete
дляуказанная команда -> если она не существует, используйте complete -D
-> если она не существует, используйте завершение Bash по умолчанию -> уже есть хотя бы одно слово вв строке, поэтому не используйте завершение команды -> не начинается с $
, ~
или @
, поэтому выполните завершение имени файла.
Мой вопрос: почему выполняется завершение имени файла?вместо завершения команды в этом сценарии, хотя в строке еще нет слов:
$<SPACE><TAB><TAB>
Еще большесбивает с толку, поскольку приведенное ниже завершение команды выполняется должным образом:
$<SPACE>com<TAB><TAB>
Скорее всего, я неправильно понял руководство, и я был бы весьма признателен за любое объяснение.
ПРИМЕЧАНИЕ: $
обозначает подсказку, а не буквальный знак доллара.