Bash không chạy tập lệnh tại /opt/local/etc/bash_completion.d/


8

Tôi muốn có bash autocompletion cho các lệnh git, vì vậy tôi đã bỏ tập tin bash script vào /opt/local/etc/bash_completion.d/.

Khi tôi mở Terminal mới, tệp script /opt/local/etc/bash_completion.d/không được thực thi. Tôi đã xác minh rằng tệp script đang hoạt động bằng cách chạy:

source /opt/local/etc/bash_completion.d/git-completion.bash

Có bất kỳ bước nào còn thiếu ở đây để yêu cầu OS X tự động thực thi các tập lệnh /opt/local/etc/bash_completion.d/không?

Câu trả lời:


8

Để tự động tải tất cả các tập lệnh từ một thư mục, hãy đặt tập lệnh này vào ~/.bashrctập tin của bạn

# LOAD ALL AUTOCOMPLETIONS IF ANY ARE INSTALLED
if [ -d /usr/local/etc/bash_completion.d ]; then
    for F in "/usr/local/etc/bash_completion.d/"*; do
        if [ -f "${F}" ]; then
            source "${F}";
        fi
    done
fi

3

Có bạn cần phải tải chúng vào vỏ của bạn.

Điều này được thực hiện bằng cách chỉnh sửa ~/.bashrchoặc ~/.bash_profilethêm lệnh . filenamecho mỗi tệp. Điều này tải các tập tin và làm cho các chức năng có sẵn. tức là đặt lệnh nguồn của bạn vào một trong những tệp này.

Lưu ý rằng bạn không nên thêm vào /opt/local/etc/bash_completion.d/vì chỉ macports nên viết ở đó. Đặt các tập tin trong thư mục nhà của bạn, ví dụ~/.bash_completion.d/git-completion.bash

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.