compgen: bỏ qua trường hợp


9

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ư đó compgentrườ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:


5

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 .


Nhưng bản lề này trên thực tế đó optslà 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.
Enrico Maria De Angelis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.