Từ hướng dẫn sử dụng bash
Các quy tắc liên quan đến định nghĩa và sử dụng bí danh có phần khó hiểu. Bash luôn đọc ít nhất một dòng đầu vào hoàn chỉnh trước khi thực hiện bất kỳ lệnh nào trên dòng đó. Bí danh được mở rộng khi một lệnh được đọc, không phải khi nó được thực thi. Do đó, một định nghĩa bí danh xuất hiện trên cùng một dòng với một lệnh khác không có hiệu lực cho đến khi dòng đầu vào tiếp theo được đọc. Các lệnh theo định nghĩa bí danh trên dòng đó không bị ảnh hưởng bởi bí danh mới. Hành vi này cũng là một vấn đề khi các chức năng được thực thi. Các bí danh được mở rộng khi một định nghĩa hàm được đọc, không phải khi hàm được thực thi , bởi vì một định nghĩa hàm tự nó là một lệnh ghép. Hậu quả là bí danh được xác định trong một hàm không có sẵn cho đến khi hàm đó được thực thi . Để an toàn, luôn đặt các định nghĩa bí danh trên một dòng riêng biệt và không sử dụng bí danh trong các lệnh ghép.
Hai câu "Bí danh được mở rộng khi đọc định nghĩa hàm, không phải khi hàm được thực thi" và "bí danh được định nghĩa trong hàm không khả dụng cho đến khi hàm đó được thực thi" dường như trái ngược với nhau.
Bạn có thể giải thích ý nghĩa của chúng tương ứng?
.bashrc
các tệp ở trên cùng.