Nói với tư cách là một người mới chơi bash, tôi đã nâng cấp .bashrc của mình thông qua copy / paste + github và tôi đã bắt gặp :
lệnh bắt đầu cả tôi và google. ví dụ : ${USER_BASH_COMPLETION_DIR:=~/.bash_completion.d}
.
Không có câu lệnh này ban đầu trong .bashrc của tôi và nhập nội dung này vào thiết bị đầu cuối của tôi ( -> cho biết đầu ra có liên quan):
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> /Users/sh/.bash_completion.d
Và:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
echo $USER_BASH_COMPLETION_DIR
-> asdf
Nhưng:
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
export USER_BASH_COMPLETION_DIR=asdf
: ${USER_BASH_COMPLETION_DIR=~/.bash_completion.d}
echo $USER_BASH_COMPLETION_DIR
-> asdf
Tôi không hiểu!
1) Làm thế nào để lệnh dấu hai chấm đặt một biến nhưng không thể ghi đè lên một tập hợp bởi export
?
2) Logic đằng sau việc sử dụng :
trong một số .bashrc là gì?
Sử dụng máy Mac 10.6.8
(ngoài ngữ cảnh bao gồm từ khóa đại tràng chỉ để giúp những người khác như tôi đã cố gắng tìm kiếm cụm từ đó)