под Debians BASH я могу сделать следующее:
foo=/path/to/some/file
cat $f[TAB]
Как вы можете видеть, я могу автозаполнение переменную $ Foo, нажав клавишу TAB.
В Ubuntu (11) поведение не совпадает (я активировал '/ etc/bash_completion' в моем bashrc).
Это работает:
echo $f[TAB]
Это один не работает:
cat $f[TAB]
Может кто-нибудь дать мне подсказку, как получить последний работает?
«complete -r cat» решил мою проблему. СПАСИБО. – casper
Хорошо, что исправил мою проблему для «кошки» .. но с помощью «grep» и т. Д. Возникает та же проблема. Должен ли я делать это при каждой программе, которую я использую, или существует глобальный путь? – casper
@casper: Вы можете попробовать заменить '_longopt()' на no-op: '_longopt() {:; } ', но это может нарушить другие вещи. Вы можете запустить цикл: 'для p в cat grep; do complete -r "$ p"; done'. Вы можете изменить '_longopt()', так что, когда '$ cur' начинается с« $ », он устанавливает' COMPREPLY' в 'compgen', состоящий из имен переменных. Могут быть другие способы. Мое второе предложение в моем ответе работает для вас? –