Do tego miesiąca moje konfiguracje powłoki były dość proste ( głównie a .bashrclub .bash_profileniektó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 lsprzestałem pracować. Okazało się, że podczas refaktoryzacji .bashrcistniał alias
alias ls='ls --color=always'
to było zepsute lsw bash na terminalu w OSX. Kiedy zobaczyłem, że BSD lslubi -Gkolory, 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 ifblokach, 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 -cróżni się odls --color. Zredagowałem twoje pytanie, aby naprawić