Anzeige:
Results 1 to 15 of 15

Thread: Welche Script-Sprache

  1. #1
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732

    Welche Script-Sprache

    Hallo zusammen,

    auch wenn ich in der Vergangenheit kleinere Bash-Skripte geschrieben habe kann man die wohl kaum als "programmiert" betrachten. Da Skripte aber für viele Aufgaben nützlich sind will ich eine Skript-Sprache lernen. Habe mal etwas recherchiert und ein paar Hinweise gefunden das Bash-Skripte nicht mehr "on vogue" sind. Ist das so?

    Die Skripte die ich erstellen möchte sollen:

    - die gängigen Schleifen und Bedingungen ermöglichen
    - Linux-Befehle ausführen
    - Logfiles schreiben und per Mail senden

    Soweit ich das beurteilen kann ist dies alles mit Bash-Skripten möglich. Öfter gelesen habe ich von Phyton gelesen. Ist Phyton auf den gängigen Distributionen per Grundinstallation verfügbar? Das war ja (zumindest früher) der Vorteil der Bash-Skripte dass sie auf fast allen Distros ohne einfach liefen.

    Was benutzt Ihr?

    Viele Grüße
    pixel
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  2. #2
    Registrierter Benutzer
    Join Date
    Dec 2003
    Location
    Dettenhausen
    Posts
    21.214
    Je nach konkreter Anforderung:
    * Shell
    * Perl
    * PHP

    meist aber Shell - im großen und ganzen gibt's nicht viel, was man damit nicht erledigt bekommt.

    (python mag ich nicht, außerdem müssen die sich erst mal drüber klar werden, welche Version sie denn nun wollen)

    Abgesehen davon: Der Thread hat das Potential, lustig zu werden. Kartoffelsalat steht bereit.
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732
    ja, ich habe ja zu Bash tendiert. Hatte nur im Web gefunden dass dies nicht mehr zeitgemäß wäre. Deshalb die Nachfrage.

    ... dann mach ich mal Schnitzel und hol Bier
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  4. #4
    Registrierter Benutzer
    Join Date
    Dec 2003
    Location
    Dettenhausen
    Posts
    21.214
    Nicht mehr zeitgemäß - das heißt es irgendwann mal (meist temporär) zu jeder Programmiersprache.

    Aber man muß ja auch nicht jeder Kuh nachlaufen, die durch's Dorf getrieben wird.
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732
    ok, danke.
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  6. #6
    Registrierter Benutzer
    Join Date
    Apr 2009
    Location
    Erde
    Posts
    2.317
    Wobei nicht mehr zeitgemäß auf Perl 5.x zutrifft, 6.x kommt nicht in die Pushen. Ich würde dir dringend zu Python raten, ich kann die Abneigung von einigen gut verstehen, aber ist aktuell die beste Skript Sprache, einfach nur weil das Tooling drum herum unfassbar gut ist. Alternativ LUA, da ist das Tooling aber bei weitem nicht soweit.

    Was meine ich mit Tooling:
    https://pypi.org/project/pip/
    https://docs.python-guide.org/dev/virtualenvs/
    https://www.python.org/dev/peps/pep-0008/
    PyCharm
    Gruß nopes
    (,,,)---(^.^)---(,,,) /var/log/messages | grep cat

  7. #7
    Registrierter Benutzer
    Join Date
    May 2018
    Posts
    145
    Um Shellscripte kommt man auf längere Sich nicht drumrum wenn man Linux/Unix ernsthaft administrieren will. Was willst Du machen? Komplexe Scripte schreiben geht mit allen, aber PHP hat bei Webanwendungen die Nase vorn, nur ist es nirgends per Default installiert also ist es eher suboptimal damit Scripte zu schreiben, die auf das System zugreifen.

  8. #8
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732
    Im Moment geht es hauptsächlich um ein Skript welches einen Snapshot der QCOW2-Files der laufenden VM erstellt, das orginal weg sichert und anschließend den Merge wieder durchführt. Die einzelnen Schritte sollen in ein Protokoll-File welches am Ende per Mail versendet wird. Tritt "unterwegs" ein Fehler auf müssen die bereits gelaufenen Schritte wieder rückgängig gemacht werden.

    Ich denke auch das die Bash dazu am besten geeignet ist. Wie gesagt, mich hat nur ein User-Beitrag (wie erwähnt) etwas verunsichert. Habe mir entsprechende Literatur bestellt.
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  9. #9
    Universaldilletant fork's Avatar
    Join Date
    Dec 2001
    Location
    Frankfurt/Main
    Posts
    1.166
    Ja. Das ist meist so, dass bash auf den meisten Distributionen verfügbar und installiert ist. Bash ist greift allerdings grundsätzlich auf eine Vielzahl externer Programme zu. Wenn Du portabel bleiben willst, dann musst Du Dir genau überlegen, welche externen Programme du verwendest. Im Vergleich dazu haben richtige Skriptsprachen(perl, python, ruby,..) mehr Funktionalität, die in Bash durch Aufruf externer Programme umgesetzt wird.

    Bash ist grundsätzlich auch langsamer als andere Programmiersprachen, weil die meisten Befehle externe Aufrufe sind, während bei umfangreicheren Skriptsprachen zum Großteil alles Funktionen sind, die im aktuellen Prozess ausgeführt werden.

    Auch die verschiedenen Schritte der Interpretation jeder einzelnen Befehlszeile macht die Programmierung in der Bash fehleranfälliger, sowie der Umgang mit globalen Variablen.

    Insgesamt würde ich sagen, dass man kleine Scripte mit Bash gut schreiben kann, aber bei größeren Anliegen(Meine Grenze hierfür: ca. 200 Zeilen) die Finger davon lassen sollte.

    Das Script von Dir ist wahrscheinlich eher klein und übersichtlich.

    Ich selbst greife mitunter öfters zur bash, weil ich einfach schneller mit der Arbeit fertig bin. Ich bin aber auch schon hier und da an Grenzen gestossen, wo ich mich geärgert hatte, dass ich nicht doch lieber eine richtige Scriptsprache verwendet habe. Ab einer gewissen grösse wird es mit der Bash dann zunehmend weniger wartbar, langsamer und fehleranfälliger.

    Was die Vorinstallation in den Linux-Distributionen in der Minimalinstallation betrifft:

    • Perl 5 und Bash dürfte am weitesten verbreitet sein
    • Python hat hier auch eine hohe Verbreitung
    • Ich könnte mir aber vorstellen dass einige Distributionen standardmässig keine Bash mitbringen, sondern etwas kleineres(ash,sh,...)
    Last edited by fork; 17.07.19 at 16:51.

  10. #10
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732
    Danke für die Erklärung. Ich werde erst mal mit der Bash anfangen.
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  11. #11
    Registrierter Benutzer
    Join Date
    May 2018
    Posts
    145
    Schöne neue Welt. Zu SunOS, AIX, IRIX und SCO-Zeiten war SH/KSH Standard (wobei die Masochisten CSH genutzt haben). Die Bash ist vollständig kompatibel zur SH, aber nicht umgekehrt. Wenn Du Bash-Scripte schreibst, kann es sein das die beim Einsatz eines Rettungssystems nicht funktionieren weil -wie fork schon gesagt hat - die SH bzw. Dash vorhanden ist (meistens aus Platzgründen). Ich kenne keine Linuxdistribution, die in der Standardinstallation keine Bash installiert. Bei Free- und OpenBSD ist es genau andersrum. Da muss die Bash erst installiert werden, da per Default die KSH/PDKSH (OpenBSD) und die SH/TCSH (FreeBSD) genutzt. Wenn Du vorhast Deine Scripte auf verschiedenen Systemen einzusetzen, dann verwende #!/bin/sh als Interpreter und eine SH-only-Syntax: https://www.grymoire.com/Unix/Sh.html
    Rudimentäre Grundlagen in der Shellprogrammierung schaden aber nie.

  12. #12
    Registrierter Benutzer pixel's Avatar
    Join Date
    Dec 2000
    Location
    Bühl
    Posts
    2.732
    Mir geht es um Debian basierende Server und Ubuntu Clients. Da sollte ich mit Bash-Skripten auf der sicheren Seite sein?
    Das maximale Maß an Flach- und Schwachsinn, das eine »kommunizierende« Menschengruppe zu produzieren in der Lage ist, wird seit Internetzeiten nicht mehr an Stammtischen erreicht, deren Besatzung die 10. Runde intus hat.

  13. #13
    Registrierter Benutzer
    Join Date
    May 2018
    Posts
    145
    Ich kenne keine Linuxdistribution, die keine Bash als Default installiert. Also normale Installation und kein Rettungssystem. Wenn Du die Scripte nur unter Debian bzw. deren Derivate einsetzt, kannst Du Dich auf die Bash beschränken.

  14. #14
    Registrierter Benutzer
    Join Date
    Jun 2006
    Posts
    139
    Evtl. sollte man den Täglichen Betrieb (dafür braucht man irgendwelche Scripte um Dinge zu automatisieren) mit einem Notfall in einem Rettungssystem (dort arbeitet man eher interaktiv, da es unterschiedliche Probleme gibt) unterscheiden.
    Bei letzterem muss man die Shell und die Tools kennen, braucht man z.B. keine Schleifen oder Ein und Ausgaben.

    Nach nach Anforderungen kann man sich auch die Powershell anschauen. Dadurch das Objekte und kein Text übergeben wird ist diese sehr mächtig, wenn es z.B. darum geht Daten (csv, listen) zu bearbeiten.

  15. #15
    Universaldilletant fork's Avatar
    Join Date
    Dec 2001
    Location
    Frankfurt/Main
    Posts
    1.166
    Wenn Kompatitbilität wichtig ist, kann man auch #!/bin/sh als She-Bang verwenden. Wenn /bin/sh ein Symlink auf /bin/bash ist, verhält sich bash dann Posix-konform.

    Hier so ein paar Anmerkungen, was die bash hat und die Posix Shell nicht: https://stackoverflow.com/a/42666651 Bash ist durchaus etwas angenehmer zu nutzen.

    Posix-Konformität heisst auch, dass man nur die Features von awk + sed + ... verwendet und nicht die GNU-Erweiterungen.

    Ein schönes Tool, dass ich gerade kennen gelernt habe ist shellcheck. Es validiert Shell-Code, liefert hilfreiche Kommentare und Warnungen für die verschiedenen Shells. (bash, sh, ksh, ...)
    Last edited by fork; 18.07.19 at 16:40.

Similar Threads

  1. Welche Programmier Sprache für dieses Projekt?
    By juxreal in forum Anwendungen Allgemein, Software
    Replies: 5
    Last Post: 08.06.15, 01:31
  2. Ubuntu - Zeige welche init-Script gestartet werden?
    By Linux-Djihad in forum Linux Allgemein
    Replies: 10
    Last Post: 10.01.10, 07:59
  3. Programmieren unter Linux – welche Sprache und IDE?
    By webshark in forum Anwendungen Allgemein, Software
    Replies: 22
    Last Post: 04.03.08, 00:22
  4. Welche Sprache für GUI's erlernen?
    By dingeling in forum Linux Allgemein
    Replies: 17
    Last Post: 21.02.05, 12:39
  5. Welche Prg.Sprache für welche Oberfläche
    By in forum Linux Allgemein
    Replies: 4
    Last Post: 20.07.00, 00:53

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •