Ich benutze tcsh
seit langer Zeit. Aber wenn ich nach etwas suche, stelle ich oft fest, dass die angegebenen Methoden bash
spezifisch sind. Sogar die Syntax für die Shell-Skripte unterscheidet sich für beide.
Nach dem, was ich beim Suchen und Lernen im Internet erlebt habe, bash
scheint die am häufigsten verwendete Shell zu sein. Selbst die Anzahl der Fragen auf dieser Site ist um ein bash
Vielfaches höher (derzeit fünfmal höher) als die Anzahl der Fragen, die mit Tags versehen sind tcsh
.
Also überlege ich, ob ich auf bash umsteigen soll. Was denkst du?
Warum soll ich bleiben tcsh
ODER warum soll ich umziehen bash
?
zsh
(welches OS X hättedash
die fast alles funktionieren sollte.zsh
. Zur gleichen Zeit ist es nicht amüsant, weil es die ops-Frage nicht wirklich beantwortet. Aus diesem Grund habe ich in meiner Antwort auf zsh einen Kommentar gemacht, keine Antwort. Wenn Sie nicht Probleme haben, das Shell-Skript tcsh zu erlernen, sollten Sie sich an Ihre Kenntnisse halten. Wenn Sie Probleme bei der Verwendung haben,tcsh
posten Sie Ihr Problem hier. Wechseln Sie nicht nur , weil . Es gibt mehr Bash-Posts, weil es standardmäßig an mehr Orten installiert ist, was es nicht besser macht.Antworten:
Nachdem ich bash gelernt habe, finde ich, dass tcsh ein kleiner Rückschritt ist. Zum Beispiel finde ich es schwierig in tcsh zu tun, was ich in bash leicht tun könnte. Meine Frage zu tcsh . Die Internetunterstützung und Dokumentation ist auch für Bash viel besser und für TCSH sehr begrenzt. Die Anzahl der O'Reilly-Bücher über Bash ist großartig, aber ich habe nichts Ähnliches für tcsh gefunden.
quelle
Eigentlich solltest du umziehen
zsh
! Es ist im Wesentlichen abwärtskompatibel undbash
mit einer großen Portion Awesomeness von großem Nutzen . Es gibt sogar ein Buch (obwohl ich es noch nicht gelesen habe).Ich will zugeben , einen Grund , nicht zu verwenden ,
zsh
überbash
aber wenn man ständig an mehreren neuen Anlagen arbeiten ist es nicht wirklich anwenden. Vor allem, wenn Sie die wichtigsten Unterschiede kennen . Dies ist jedoch den Unterschieden zwischenvim
und sehr ähnlichvi
. du willst nicht naiv sein, aber praktisch ist es keine große Sache. Auch Hardcore-vim
User können sich zurechtfindenemacs
und umgekehrt.quelle
Sie sollten zu einer POSIX-kompatiblen Shell wechseln ( http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html) , z. B. bash, ksh, dash, aber nicht zsh und schon gar nicht tcsh. Es ist lange her, dass csh als schlechte Wahl für Skripte eingestuft wurde: http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ , tcsh ist in diesem Bereich nicht viel anders.
Stellen Sie beim Schreiben von Skripten sicher, dass Sie nur POSIX-Konstruktionen verwenden (dh Bashismen und dergleichen vermeiden), wenn Sie nicht erneut in etwas nicht portierbarem gesperrt werden möchten.
quelle
Der Kompatibilitätsbesessenheit fehlt meiner Meinung nach der Sinn. Wenn Sie versuchen, alles kompatibel zu machen, indem Sie es
#!/bin/sh
oben platzieren und die .sh- Erweiterungen verwenden, aber niemals etwas anderes als bash testen , können Sie kein kompatibles Skript garantieren! Besser nur Gebrauch#!/bin/bash
und .bash so dass die Nutzer tatsächlich die reale Anforderung kennen.Wenn Sie zsh , tcsh oder etwas anderes besseres als bash kennen und ein gutes Referenzhandbuch dafür haben, halten Sie sich nicht zurück . Genau wie die Leute erwarten, Perl oder Python zu installieren , um einige Skripte ausführen zu können, können sie auch Ihre obskure Shell installieren! : D
quelle
/bin/sh
garantiert, dass es auf eine kornkompatible Shell verweist, während tcsh eine von csh abgeleitete Shell ist. Es ist wahrscheinlich, dass/bin/sh
bereits auf bash oder eine andere kompatible Shell verwiesen wird, und es ist fast sicher, dass dies durch das Ändern der Benutzer- Shell nicht beeinträchtigt wird . csh und sh sind völlig inkompatibel.dash
(Debian-ash
und Bourne-kompatible Shell).#!/bin/sh
allein-ne
. Bedenken hinsichtlich der POSIX-Kompatibilität sollten jedoch nicht als „besessen“ bezeichnet werden. Das Aufrufen vonsh
Defaults erfolgt seit einiger Zeit mit debian / ubuntu. Ich weiß, dass dies nicht als "garantiert" gelten würde, aber selten würde ich eine Portabilität als "garantiert" betrachten. Ich wäre mit einem "Shell-Skript" noch reservierter.Welche Muschel? Entscheiden Sie sich für diejenige mit dem besten Verhältnis von "Benutzerfreundlichkeit" zu "Ärger" ...
Wenn Sie nicht genügend allgemeine Beispiele und Erklärungen für Ihre "Maserati" -Shell finden, ist die zusätzliche Leistung möglicherweise eher ein Problem als ein Bonus ...
Ich fand diesen Artikel / diese Seite interessant; Vielleicht ist es eine Lektüre wert:
Unterschiede in der UNIX-Shell und wie man die Shell ändert
quelle
zsh hat wahrscheinlich ein paar Ähnlichkeiten mit tcsh als bash.
Siehe: http://zsh.sourceforge.net/FAQ/zshfaq02.html#l13
Die Leute behaupten oft, dass zsh Dinge kann, die bash nicht kann, aber ich habe nicht herausgefunden, dass dies der Fall ist. Was ich habe ist zu sehen , dass für zsh es einfacher ist , eingebaut oder auf standardmäßig aktiviert, während in bash es ein Addon Skript ist, muss eingeschaltet werden, oder ist schwieriger.
(Haftungsausschluss: Ich bin ein Bash-Benutzer, der manchmal in Betracht gezogen hat, zu zsh zu wechseln.)
quelle
Aus irgendwelchen Gründen habe ich früher tcsh verwendet, als ich es vor 20 Jahren verwendet habe. Wie ich weiß, stammt bash von sh, aber natürlich mit viel csh-Zeug, aber tcsh stammt von csh. Ich mag die Befehlserfüllung in den frühen Tagen sehr, aber sie ist jetzt in den meisten Shells verfügbar. Sollen wir uns für die Skripterstellung an / bin / sh halten?
quelle