Возможный дубликат:
Правильная обработка пробелов и кавычки в завершении bash
Я хотел бы использовать строки с кавычками muti-word для завершения bash.
например мне нравится быть в состоянии сделать это
$ command <tab>
"Long String 1"
"Long String 2"
где «Длинная строка 1» и «Длинная строка 2» — это предложения, выдаваемые при нажатии табуляции.
Я пытался использовать это, где ~/strings
содержит список строк в кавычках
function _hista_comp(){
local curw
COMPREPLY=()
curw=${COMP_WORDS[COMP_CWORD]}
COMPREPLY=($(compgen -W '`cat ~/strings`' -- $curw))
return 0
}
complete -F _hista_comp hista
Приведенная выше функция разбивает строку на пробелы. Есть ли способ заставить его вернуть всю цитируемую строку?
например, если ~/string
имел следующие строки
"Long String 1"
"Long String 2"
Это дало бы 5 предложений вместо 2.
compgen
плохо работает с пробелами. - person Mark Reed   schedule 04.05.2012