Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Welche Script-Sprache

  1. #1
    Registrierter Benutzer Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733

    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
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    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 Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733
    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
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    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 Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733
    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
    Registriert seit
    Apr 2009
    Ort
    Erde
    Beiträge
    2.814
    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
    Registriert seit
    May 2018
    Beiträge
    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 Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733
    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 Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175
    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,...)
    Geändert von fork (17.07.19 um 16:51 Uhr)

  10. #10
    Registrierter Benutzer Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733
    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
    Registriert seit
    May 2018
    Beiträge
    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 Avatar von pixel
    Registriert seit
    Dec 2000
    Ort
    Bühl
    Beiträge
    2.733
    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
    Registriert seit
    May 2018
    Beiträge
    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
    Registriert seit
    Jun 2006
    Beiträge
    194
    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 Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.175
    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, ...)
    Geändert von fork (18.07.19 um 16:40 Uhr)

Ähnliche Themen

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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •