Hingga bulan ini, konfigurasi shell saya cukup sederhana (hanya dengan .bashrc
atau .bash_profile
sebagian alias), tetapi saya telah refactoring sehingga saya bisa mendapatkan perilaku yang berbeda tergantung pada apakah saya menggunakan zsh, dan bash. Mereka pertama-tama sumber file konfigurasi shell generik yang harus bekerja untuk apa pun, kemudian mengkhususkan diri untuk shell tertentu yang digunakan (saya simet ke ini)
Saya terkejut hari ini ketika ls
berhenti bekerja. Ternyata selama refactoring .bashrc
, ada alias
alias ls='ls --color=always'
itu melanggar hal-hal untuk ls
di bash di Terminal di OSX. Setelah saya melihat BSD ls
suka -G
warna, tetapi GNU (atau apa pun yang ada di Ubuntu) suka --color
, jelas bahwa beberapa opsi berbeda.
Pertanyaan saya adalah, apa cara terbaik untuk menjelaskan perbedaan pilihan dan antara BSD dan GNU coreutils? Haruskah saya menguji variabel env dalam if
blok untuk melihat OS apa yang digunakan dan menerapkan perilaku yang benar? Atau apakah lebih masuk akal untuk membuat file konfigurasi terpisah untuk setiap OS?
Sementara jawaban untuk pertanyaan-pertanyaan ini mungkin subyektif, sepertinya ikhtisar dari lingkup perbedaan antara BSD dan GNU coreutils dan strategi untuk mengatasi ini untuk membuat konfigurasi generik yang dapat digunakan pada sebagian besar * nix akan cukup objektif.
ls -c
berbeda darils --color
. Edit pertanyaan Anda untuk diperbaiki.