Frage

Ich weiß, dass diese Frage in der Vergangenheit "religiöse" Kriege begonnen hat und es möglicherweise keine korrekte Antwort gibt. Aber nachdem ich in den letzten 3-4 Jahren mit KSH und CSH gearbeitet und den Schmerz des Ports von einem zum anderen durchgemacht oder auf mehrere Versionen (als Legacy-Code gelesen) angewendet oder ein neues Skript angewendet habe, habe ich ich angewendet. Würde für KSH gehen, aber eher aus Zwang als aus der Wahl. Gibt es eine bessere Option als KSH/CSH? Auch etwas, das über Unixes (Solaris/HP/IBM/FreeBSD) und Linux tragbar ist (und wenn ich nicht zu viel frage oder wenn ich nicht zu viel frage, wenn alle Linux -Aromen sinnvoll sind)

Warten auf Vorschläge ...

Frieden :) Devang Kamdar

War es hilfreich?

Lösung

Ich würde einfach alt vorschlagen sh, was überall erhältlich ist.

Es ist auch erwähnenswert, dass Portabilität nicht nur Shell, sondern auch andere Befehle in einem Skript wie z. awk, grep, ps oder echo.

Andere Tipps

Wenn Sie wirklich wollen, dass es tragbar ist (ich weiß nicht, dass ein Shell-Skript aufrechterhalten ist), würde ich #!/Bin/sh angeben und mit testen mit Bindestrich und wenn möglich andere Muscheln.

Ich würde erwarten, dass Bash derzeit die breiteste Spread Shell ist, da es für viele Linux -Verteilungen Standard ist (sie kann sogar mit Cygwin auf Windows ausgeführt werden, aber das gilt wahrscheinlich auch für die anderen Shells). Eine Alternative könnte darin bestehen, die Shell selbst nicht zum Skripten zu verwenden, sondern eine der Skriptsprachen da draußen wie Perl, Python, Ruby, ...

Normalerweise benutze ich KSH. Ich finde, dass es ein guter Kompromiss zwischen Funktionen und Portabilität ist. Es ist dort (oder eine kompatible Version ist verfügbar) für die meisten Linux -Boxen und Solaris. Es ist eine Weile, dass ich HP-UX (zum Glück) verwendet habe, aber ich bin mir ziemlich sicher, dass es auch dort verfügbar war.

Wenn alle Maschinen, die Sie unterstützen, modern sind, ist Bash möglicherweise eine Option. Solaris 10 wird mit einer Kopie geliefert. Es ist die Standardeinstellung bei den meisten Linux -Maschinen.

Ihr niedrigster gemeinsamer Nenner wird Bourne (SH) sein. Das ist also wert, ob die Portabilität Ihr Hauptanliegen ist. Es fehlt jedoch einige der freundlicheren Funktionen von KSH und Bash.

Es lohnt sich immer noch, CSH/TCSH für das Skripten zu lenken. CSH -Programmierung als schädlich angesehen ist ein Oldie, aber immer noch weitgehend relevant.

Meine Antwort wäre Perl.

Kann alles 'sh' 'bash' usw. auf schönere elegantere Weise tun.

Auch es ist tatsächlich tragbarer. Eine bestimmte Version Perl ist sehr konsistant alle Plattformen. Es gibt keine signifikanten Unterschiede zwischen Linux-, Solaris- und AIX -Verteilungen, während das Portieren von Shell -Skripten zwischen diesen Plattformen ein echter Schmerz ist.

Und es funktioniert bei allen Windows Paltforms! Vorausgesetzt, Sie vermeiden Backticks und "System ()" "Ihr Skript hat eine gute Chance zu laufen.

Python! Schauen Sie sich Ipython an, ein verbesserter Python -Dolmetscher. Ebenfalls: Python für Unix- und Linux -Systemverwaltung.

Sie können großartige tragbare Skripte schreiben, und es macht Spaß.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top