Do tego miesiąca moje konfiguracje powłoki były dość proste ( głównie a .bashrc
lub .bash_profile
niektóre aliasy), ale przerabiałem je tak, aby uzyskać inne zachowanie w zależności od tego, czy używam zsh i bash. Najpierw źródłowy plik konfiguracyjny powłoki, który powinien działać na cokolwiek, a następnie specjalizują się w konkretnej używanej powłoce (odsyłam do tego dowiązanie symboliczne).
Byłem dzisiaj zaskoczony, kiedy ls
przestałem pracować. Okazało się, że podczas refaktoryzacji .bashrc
istniał alias
alias ls='ls --color=always'
to było zepsute ls
w bash na terminalu w OSX. Kiedy zobaczyłem, że BSD ls
lubi -G
kolory, ale GNU (lub cokolwiek było na Ubuntu) --color
, było jasne, że całkiem sporo opcji się różni.
Moje pytanie brzmi: jaki jest najlepszy sposób na uwzględnienie różnic w opcjach i takich między rdzeniami BSD i GNU? Czy powinienem testować zmienną env w if
blokach, aby zobaczyć, jaki system operacyjny jest używany i zastosować prawidłowe zachowanie? Czy może bardziej sensowne jest tworzenie osobnych plików konfiguracyjnych dla każdego systemu operacyjnego?
Chociaż odpowiedzi na te pytania mogą być subiektywne, wydaje się, że podsumowanie zakresu różnic między rdzeniami BSD i GNU i strategie obejścia ich w celu umożliwienia używania ogólnej konfiguracji na większości * nix byłyby dość obiektywne.
ls -c
różni się odls --color
. Zredagowałem twoje pytanie, aby naprawić