Tôi đang cố gắng thực hiện hoàn thành bash tùy chỉnh như được mô tả ở đây . Tuy nhiên, dường như đó compgen
là trường hợp nhạy cảm . Có cách nào để biến nó thành trường hợp không nhạy cảm trong bối cảnh đó không?
Tôi đang cố gắng thực hiện hoàn thành bash tùy chỉnh như được mô tả ở đây . Tuy nhiên, dường như đó compgen
là trường hợp nhạy cảm . Có cách nào để biến nó thành trường hợp không nhạy cảm trong bối cảnh đó không?
Câu trả lời:
Tôi sẽ sửa đổi ví dụ từ liên kết bạn đã đề cập thành một cái gì đó như thế này:
_foo()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD],,}" # this downcases the result
prev="${COMP_WORDS[COMP_CWORD-1],,}" # here too
opts="--help --verbose --version"
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}
complete -F _foo foo
Để biết thêm thông tin tham khảo tài liệu bash hoặc trang web tin tặc bash .
opts
là tất cả các trường hợp thấp hơn. Nếu có--help --verbose --VERSION
, nó không bao giờ có thể hoàn thành trường hợp thứ ba.