Cho đến tháng này, các cấu hình shell của tôi khá đơn giản ( chủ yếu là một .bashrc
hoặc .bash_profile
với một số bí danh), nhưng tôi đã cấu trúc lại nó để tôi có thể có các hành vi khác nhau tùy thuộc vào việc tôi đang sử dụng zsh và bash. Đầu tiên họ cung cấp một tệp cấu hình shell chung nên hoạt động cho bất cứ điều gì, sau đó chuyên biệt cho trình bao cụ thể đang được sử dụng (tôi liên kết với điều này).
Tôi đã ngạc nhiên ngày hôm nay khi ls
ngừng làm việc. Hóa ra trong quá trình tái cấu trúc .bashrc
, có một bí danh
alias ls='ls --color=always'
điều đó đã phá vỡ mọi thứ ls
trong bash trên Terminal trong OSX. Khi tôi thấy BSD ls
thích -G
màu sắc, nhưng GNU (hoặc bất cứ thứ gì có trên Ubuntu) thích --color
, rõ ràng có khá nhiều tùy chọn khác nhau.
Câu hỏi của tôi là, cách tốt nhất để giải thích cho sự khác biệt trong các tùy chọn và như vậy giữa lõi BSD và GNU là gì? Tôi có nên kiểm tra biến env trong if
các khối để xem HĐH nào đang được sử dụng và áp dụng hành vi đúng không? Hoặc nó có ý nghĩa hơn để tạo các tệp cấu hình riêng biệt cho mỗi hệ điều hành?
Mặc dù câu trả lời cho những câu hỏi này có thể mang tính chủ quan, nhưng có vẻ như một loạt các phạm vi khác nhau giữa các lõi và chiến lược của BSD và GNU để giải quyết các cấu hình chung có thể sử dụng được trên hầu hết * nix sẽ khá khách quan.
ls -c
khác vớils --color
. Chỉnh sửa câu hỏi của bạn để sửa chữa.