Ich habe gerade auf eine UNIX-Workstation migriert. Meine Erinnerung an Bash-Shell-Skripte ist seit der Schule verblasst und ich finde die Syntax sehr verwirrend. Ich frage mich, welche anderen Skriptsprachen zur Automatisierung von Aufgaben verwendet werden. Die beiden beliebtesten, von denen ich gehört habe, sind Perl und Python.
- Welche Skriptsprache wird in Geschäften der realen Welt am häufigsten verwendet?
- Welche Skriptsprache ähnelt am ehesten der C / C ++ - Syntax?
- Gibt es eine andere Skriptsprache, die ich nicht kenne?
Danke für Ihre Hilfe,
Scott
Antworten:
Bis zu einem gewissen Grad ist es eine Frage der persönlichen Präferenz. Perl und Python sind definitiv sehr beliebt.
Um zwei Ihrer drei Fragen zu beantworten:
Meine Empfehlung ist jedoch Python. Es ist einfach zu lesen und zu schreiben, immens leistungsfähig und es gibt Unmengen nützlicher Ressourcen im Web, um es zu lernen, ganz zu schweigen von Code, den Sie kopieren und neu verwenden können.
quelle
sh
die Verwendung von Python als Shell-Skriptsprache zugänglich. Wenn Sie jedoch auf Randfälle stoßen (wie Multiprocessing), müssen Sie das Teilprozessmodul lernen, das ich bis heute als zu schwierig empfinde, um es nur zu verwenden.Perl und Python sind die offensichtlichen Antworten; aber jeder von ihnen wird verwendet, um verschiedene Aufgaben zu erledigen:
Ich würde Python lernen, da Sie vermutlich keinen von ihnen kennen. Es ist am einfachsten und nützlichsten zu wissen.
Und was die Antworten auf Ihre Fragen betrifft:
Welche Skriptsprache wird in Geschäften der realen Welt am häufigsten verwendet?
Sie alle, aber ich würde mir vorstellen, dass Perl hier einen kleinen Vorteil hat (weil es schon viel länger in der Systemadministration verwendet wird).
Welche Skriptsprache ähnelt am ehesten der C / C ++ - Syntax?
Perl
Gibt es eine andere Skriptsprache, die ich nicht kenne?
Ruby, Tcsh / Csh, http://en.wikipedia.org/wiki/Interpreted_language
quelle
awk für kleine aufträge, python für mehr als oneliners.
Python (wenn Sie keine spezifischen APIs und andere plattformabhängige Dinge verwenden) verfügt über eine umfangreiche "Standardbibliothek", die auf allen Plattformen verfügbar ist, auf denen Sie die Python-Version verwenden. Das ist sehr schön, da Sie Ihre Skripte einfach wiederverwenden können und Ihr Wissen eine gute Investition ist, selbst wenn Sie Ihre Plattform wechseln.
In unserem Unternehmen verwenden wir Python für alle Skripte, Überwachungen und Java für die Anwendung, und wir sind in einer heterogenen Umgebung gut aufgehoben.
quelle
Ich würde sagen, dass Perl und Python wahrscheinlich die beiden besten Alternativen sind. Mit sed und awk kann man auch viel anfangen.
quelle
Sh (Bournemuschel), grep, awk und sed ist immer eine gute Sache, um wieder in den Griff zu bekommen. Perl eignet sich hervorragend, wenn Sie nicht viel Text regulieren und die Wartbarkeit nicht so wichtig ist (ohne zu sagen, dass dies nicht möglich ist). Python; wenn Ihnen die Lesbarkeit wichtig ist. Ich bevorzuge Python, aber all diese Werkzeuge sind gut für die meisten Dinge, die Sie darauf werfen. Möglicherweise möchten Sie die Syntaxanforderungen für C / C ++ überdenken. Wenn Sie nicht weiterkommen, wird dies Ihnen auf lange Sicht nicht helfen.
quelle
Wenn Sie etwas von Grund auf lernen möchten, ist es wahrscheinlich am besten, bash (neu) zu lernen.
Darüber hinaus sind Perl und Python heutzutage sehr beliebt. Ich bin ein Teil von Perl, aber mein Perl-Skriptstil hat sich seit der Veröffentlichung von Perl 4 nicht wesentlich geändert.
Mir sind keine "C-Syntax-ähnlichen" Skriptsprachen bekannt.
quelle
Perl, zweifellos, wenn auch nur für die unglaubliche Ressource von CPAN ( http://search.cpan.org/ ). Der Vorteil einer Skriptsprache mit einer derart großen Community besteht darin, dass Sie wahrscheinlich nie selbst etwas erfinden müssen.
Perl hat auch den Vorteil, dass es so komplex ist, wie Sie es für die aktuelle Situation benötigen. Sie können es als einfache Skriptsprache für die schnelle Verwaltung oder für Einzelskripts behandeln, aber Sie können objektorientierte Konzepte oder umfangreiche Metaobjektsysteme verwenden, wenn Sie größere, einfach zu wartende Anwendungen (wie Daemons, Server, Clients) erstellen möchten.
Die Unterschiede zwischen den Skriptsprachen allein sind nicht gravierend genug, um einen eindeutigen Gewinner zu ermitteln. Sie sollten sich jedoch vor allem ansehen, wie einfach es für Sie sein wird, Informationen zu Themen zu finden, die Sie interessieren.
Die Perl-Syntax kann auch auffallend nahe an C heranreichen, solange Sie das Fehlen von Tipp- und Siegelzeichen umgehen können. Fortgeschrittene Perl-Nutzung wäre natürlich, wenn Sie irgendwann die Stärken der Sprache lernen würden.
Und für Neinsager in Bezug auf die Lesbarkeit: Sie können schwer lesbaren Code in jeder Sprache schreiben. Wenn Sie auf Ihren Code von vor 4 Monaten zurückblicken und ihn nicht verstehen können, machen Sie etwas falsch.
ps Dieser Beitrag wurde mit Links zu verschiedenen verwaltungsfreundlichen CPAN - Modulen gefüllt, aber anscheinend können neue Benutzer nur einen Link posten. Verwenden Sie diesen CPAN - Link, um nach Dingen wie "CVS", "SVN", "Cron" und "Moose" zu suchen umfangreiches Objektsystem)
quelle
quelle
[Allgemeine Hinweise zum Schreiben von Skripten finden Sie in den anderen Antworten.]
In dieser Antwort geht es um die Verwendung von Befehlszeilenprogrammen und auch großer Ketten von diesen.
Bash ist die einfachste Methode zum Ausführen von CLI-Programmketten und möglicherweise mehrerer Ketten nacheinander. Perl kann dasselbe tun, aber die Sprache ist viel schwieriger zu lernen und weitaus komplexer, und wie viele darauf hingewiesen haben, ist es einfach, verständliches Perl zu schreiben.
Wenn Sie Dateien und Parameter durchlaufen, ist es am einfachsten, mit bash loszulegen. Sie können Prototypen in der Shell erstellen, sie in ein Skript kopieren und einige Arrays und Schleifen mit minimalem Overhead hinzufügen.
Beispiele für das, was ich meine:
In Bash ist es einfach , einige dieser Parameter in ein paar Schleifen zu packen. Der Code ist jedoch schwer zu lesen, wenn das Skript mehr als einige zehn Zeilen umfasst. --- Stellen Sie sich 30 Befehlssätze (jeweils ein paar Zeilen) für 30 verschiedene Datenplots vor ---
Perl und Python sind möglicherweise besser für große Skripte geeignet, da sie eine sauberere Syntax für Schleifen und Variablen aufweisen. Die Bash-Befehle müssen jedoch als Zeichenfolgen generiert, als Unterprozesse ausgeführt und stdin, stdout erfasst werden. Dies ist möglich, kann jedoch die native Shell-Umgebung nicht vollständig ersetzen.
Wenn Muscheln eine bessere Sprache hätten, würde dies alles vermieden.
quelle
am häufigsten verwendet: Perl, meist aus historischen Gründen. Python ist in allen Linux- und BSD-Distributionen weit verbreitet (es ist sogar unter Mac OSX installiert) und ist weitaus besser zu lernen / zu programmieren. Sobald Sie die Syntax erhalten haben, ist Bash für fast alles, was Sie über die Befehlszeile tun können, einfacher. Immerhin, es ist die Kommandozeile.
C-Syntax: Es gibt csh , aber Sie können TCC einfach installieren und reales C als Skriptsprache verwenden, das aus dem Quellcode in kürzerer Zeit als beim Starten anderer Sprachen kompiliert wurde.
andere Skriptsprachen: viele! Lua , Ruby , JavaScript ...
quelle
Sie sollten eine Kombination von allen verwenden, wo es angebracht ist. Ich mag Perl (Lesbarkeit) wirklich nicht, aber es ist für viele Dinge gut. Python hingegen war etwas Neues für mich in Bezug auf die Systemadministration, bis ich einige KVM-Maschinen verwalten musste (und muss). Das Starten, Stoppen, Speichern, Laden und Migrieren all dieser Maschinen per Skript wurde nach einer Stunde des Herumspielens mit den Python-Bindungen von libvirt Realität.
Last but not least würde ich weder Perl noch Python verwenden, wenn ich beispielsweise jede Nacht alle Datenbanken von einem MySQL-Server sichern müsste (jede Datenbank in einer eigenen Sicherungsdatei), sie tarieren und diese mit einem anderen Server synchronisieren müsste. Warum ? Weil es schneller und einfacher ist, es in Bash zu schreiben :)
Am Ende sollten Sie die Sprache verwenden, die am besten zu Ihrer aktuellen Aufgabe passt, und nicht nur eine bestimmte Skriptsprache verwenden, nur weil es Ihnen am besten gefällt.
quelle
Ich mag Rubin. Es ist einfach und leicht zu programmieren. Es gibt ein ausgezeichnetes Buch über die Systemadministration mit Ruby .
Ruby wird in verschiedenen Konfigurationsmanagementsystemen (capistrano, chef, puppet) und in der letzten Version von metasploit verwendet.
Sie können Rush verwenden , einen Ersatz für die Unix-Shell mit Ruby-Syntax, und folgende Aktionen ausführen:
quelle
Ruby Einzeiler Beispiel:
Ich würde Rubin verwenden.
Im Vergleich zu sh ist es modern und kraftvoll.
Im Vergleich zu Python handelt es sich um Konsistenz, eine Edition und einen Paketmanager. Und ich mag keine Einrückungssyntax.
Im Vergleich zu Perl, ein bisschen altmodisch und die Syntax ist mir zu komplex.
quelle