Używam od tcsh
dłuższego czasu. Ale gdy czegoś szukam, często okazuje się, że określone metody są bash
specyficzne. Nawet składnia skryptów powłoki jest różna dla obu.
Z tego, czego doświadczyłem, szukając i ucząc się w Internecie, bash
wydaje się , że jest to najczęściej używana powłoka. Nawet liczba otagowanych pytań na tej stronie bash
jest znacznie większa (obecnie pięciokrotnie) niż liczba otagowanych pytań tcsh
.
Zastanawiam się więc, czy powinienem przejść na bash. Co myślisz?
Dlaczego powinienem trzymać się tcsh
LUB dlaczego powinienem się przenieść bash
?
zsh
(do którego OS X powinien był przejść)dash
powinny one działać na wszystko.zsh
. Jednocześnie nie jest to zabawne, ponieważ tak naprawdę nie odpowiada na pytanie operacyjne. dlatego moją odpowiedź zsh uczyniłem komentarzem, a nie odpowiedzią. Mówiąc wprost, chyba że masz problemy z nauką powłoki powłoki tcsh, skorzystaj z tego, co wiesz. Jeśli masz problemy z używaniem,tcsh
opublikuj swój problem tutaj. Nie przełączaj się po prostu dlatego . Jest więcej postów bash, ponieważ jest domyślnie instalowany w większej liczbie miejsc, co nie poprawia go.Odpowiedzi:
Po nauczeniu się basha stwierdzam, że tcsh jest krokiem wstecz. Na przykład to, co mógłbym łatwo zrobić w bash, trudno mi zrobić w tcsh. Moje pytanie na tcsh . Wsparcie internetowe i dokumentacja są również znacznie lepsze dla bash i bardzo ograniczone dla tcsh. Liczba książek O'Reilly na bash jest świetna, ale nie znalazłem nic podobnego dla tcsh.
źródło
Właściwie powinieneś przejść do
zsh
! Jest zasadniczo kompatybilny wstecz i ma całą użytecznośćbash
z dużą, ogromną pomocą niesamowitości . Jest nawet książka (chociaż nie przeczytałem jej).Muszę przyznać do jednego powodu, aby nie używać
zsh
ponadbash
ale chyba jesteś stale pracuje w wielu nowych instalacji to nie ma zastosowania. Zwłaszcza jeśli wiesz o najważniejszych różnicach . Jest to jednak bardzo podobne do różnic międzyvim
ivi
; nie chcesz być naiwny, ale praktycznie to nic wielkiego. Nawet zapalenivim
użytkownicy mogą znaleźć drogęemacs
i na odwrót.źródło
Powinieneś przełączyć się na powłokę zgodną z POSIX http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html , na przykład bash, ksh, dash, ale nie zsh i na pewno nie tcsh. Minęło dużo czasu, odkąd csh został uznany za zły wybór dla skryptów: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh nie różni się zbytnio w tym obszarze.
Pisząc skrypty, upewnij się, że używasz tylko konstrukcji POSIX (tj. Unikaj bashism i podobnych), jeśli nie chcesz być ponownie zamykany w czymś nieprzenośnym.
źródło
Myślę, że obsesyjna zgodność nie ma sensu. Jeśli spróbujesz uczynić wszystko kompatybilnym, umieszczając go
#!/bin/sh
na górze i używając rozszerzeń .sh , ale nigdy nie testujesz niczego poza bash , nie masz gwarancji kompatybilnego skryptu! Lepiej jest po prostu używać#!/bin/bash
i .bash , aby użytkownicy faktycznie znali prawdziwe wymagania.Jeśli znasz zsh , tcsh lub coś lepszego niż bash i masz do tego dobrą instrukcję, nie powstrzymuj się . Tak jak ludzie oczekują, aby zainstalować Perla lub Pythona, aby móc uruchamiać niektóre skrypty, tak samo mogą poradzić sobie z instalacją nieznanej powłoki! :RE
źródło
/bin/sh
gwarancji wskazywania powłoki zgodnej z Kornem, podczas gdy tcsh jest powłoką pochodną csh. Prawdopodobnie/bin/sh
już wskazuje na bash lub inną kompatybilną powłokę i jest prawie pewne, że zmiana powłoki użytkownika nie wpłynie na to . csh i sh są całkowicie niezgodne.dash
(ash
powłoka kompatybilna z Debianem i Bourne).#!/bin/sh
sam-ne
POSIX. Jednak obawa o kompatybilność z POSIX nie powinna być rodzajem rozważania oznaczonego jako „obsesja”. Wywoływaniesh
domyślnego dash z debian / ubuntu i już od jakiegoś czasu. Wiem, że nie kwalifikuje się to jako „gwarantowane”, ale rzadko uważam, że „przenośność” jest gwarantowana. Byłbym jeszcze bardziej powściągliwy dzięki „skryptowi powłoki”.Która skorupa? Wybierz ten, który ma najlepszy stosunek łatwości użycia do kłopotów ...
Jeśli nie możesz znaleźć wystarczającej liczby ogólnych przykładów i wyjaśnień dla swojej powłoki „Maserati”, to jej dodatkowa wydajność może być większym problemem niż premią ...
Uważam ten artykuł / witrynę za interesujący; warto przeczytać:
różnice w powłokach UNIX i jak zmienić powłokę
źródło
Zsh prawdopodobnie ma kilka więcej podobieństw do tcsh niż bash.
Zobacz: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
Ludzie często twierdzą, że zsh może robić rzeczy, których bash nie potrafi, ale nie znalazłem tego. Co ja już widać, że dla zsh jest łatwiej, wbudowany lub domyślnie włączona, natomiast w bash jest to skrypt dodatek, musi być włączone, lub jest trudniejsze.
(zrzeczenie się: Jestem użytkownikiem bash, który czasami rozważał przejście na zsh)
źródło
Z jakichś powodów używałem tcsh, tak jak korzystałem z niego 20 lat temu. Jak wiem, bash pochodzi z sh, ale oczywiście z dużą ilością csh, ale tcsh pochodzi z csh. Naprawdę podoba mi się wykonywanie polecenia na początku, ale jest ono teraz dostępne w większości powłok. Czy w przypadku skryptów powinniśmy trzymać się / bin / sh?
źródło