Bash wieso bash?

Bash, Batch oder PowerShell


  • Umfrageteilnehmer
    24

lassoheinz

Ensign
Registriert
März 2019
Beiträge
166
Hallo liebe com,

ich habe eine Frage bezüglich der Script Sprache bash/batch,.... für was kann man diese gebrauchen (Beispiele,..)?
 
Kopierskripte, die man auch schnell ohne Kompilierung anpassen kann.
Das kann auch jeder Systemtechniker.
 
Kommt doch immer auf den Anwendungsbereich an. Batch ist was anderes und eingeschränkteres als Powershellscripte. Bash ist was völlig anderes als Powershell oder Cmd. Wenn man vorwiegend mit Linux zu tun hat, dann hat man unter Windows jetzt die Möglichkeit das Linuxsubsystem zu aktivieren und kann darin mit nativen Bash-Befehlen und -Scripten arbeiten.
 
Um mal die Begrifflichkeiten zu klären:
bash an sich ist keine Script-Sprache sondern generell die Kommandozeile von Unix: https://de.wikipedia.org/wiki/Bash_(Shell)

Genau so wie Powershell auch die Kommandozeile ist. Als Batch wird hingegen üblicherweise ein Script für die Windows-Kommandozeile CMD bezeichnet. Deine Umfrage vergleicht also Äpfel mit Birnen (obwohl man das durchaus machen kann ^^).

ShellScript
CMDBatch
BashBash-Script
PowershellPowershell-Script

Die Scripts führen dann einfach gesagt mehrere Befehle nacheinander auf der Kommandozeile aus, es können bei der Programmierung aber auch Kontrollstrukturen (Bedingungen, Schleifen, ...) verwendet werden.

Verwendet werden sie meist zur Automatisierung von Vorgängen, für die Befehle auf der jeweiligen Kommandozeile existieren -> https://de.wikipedia.org/wiki/BAT-Datei#Verwendung
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: konkretor und aroxx
Auch wenn die Frage an und für sich Müll ist, weil man sieht, dass sich der TE nicht wirklich selbst mit der Thematik auseinander gesetzt hat, trotzdem noch mein tagtägliche Anwendungsfall:
Ich schreibe mir regelmäßig Skripte um zig hunderte Gigabytes an Logfiles auszuwerten. Sprich: Relevante Infos mit Grep und anderen Befehlen aufzubereiten und dann in ein File auszugeben, welches mir dann nur noch die für mich wichtigen Infos enthält und auch in einem Format, mit dem ich dann arbeiten kann für meine Analysen.
Teilweise sogar soweit aufbereitet, dass ich diese dann direkt in Excel importieren kann um Laufzeitanalysen und kompliziertere Analysen auf den gewonnenen Daten auszuführen.

Der Geschwindigkeitsvorteil von Batch-Skripten zu anderen Lösungen ist teilweise Faktor 1000. Also gar nicht anders handelbar bei meinen Daten mit einem vertretbaren Zeitaufwand. Manuell wäre das eine Sache von Jahren, die da in ner halben Stunde automatisiert läuft
 
@rg88 Ich habe mich sehrwohl mit dem Thema Bash auseinander gesetzt, wie es scheint habe ich mich nicht genügend ausgedrückt...ich meinte mehr so Beispielprogramme...mir ist bewusst was und wie das in der Art funktioniert...
 
finde bash am besten weil die Scripte dann funktionieren. Unter Windows habe ich immer das Problem das scripte und deren Fehler in einer Endlosschleife ausgegeben werden. War mehrmals so. Weiß jetzt nimmer was ich damals scripten wollte aber es ging immer schief. Wenn ich die Befehle dann manuell ins cmd reinkopiert hab, gingen sie dann komischerweise. Was ich auch cool bei bash finde ist das man Variablen einbauen kann. Das hab ich unter Windows nicht mal googlen können wie das geht.

Z.B mein selbstgebasteltes Teamspeak Update Script. Unter Windows hätte ich das nie hinbekommen. Ich gebe Architektur und Version an und das Script updatet mein Teamspeak. Unter Windows wüsste ich nicht mal wie man eine Variable eingeben kann geschweige wie man einen Dienst ohne Adminrechte für den jenigen User startet.

Bash:
echo -e "Bitte Architektur angeben."
echo -e "x86 oder amd64 (Schreibweise beachten"
read -e -p "" arch
echo -e "Bitte Version angeben, welche heruntergeladen werden soll."
read -e -p "" version
echo -e "Lösche altes Backup."
rm backup.tar
echo -e "Stoppe TS Server."
./stop.sh
echo -e "Backup von aktueller Version wird angefertigt."
tar cf backup.tar teamspeak3-server_linux_${arch}
echo -e "Angegebene Version von Teamspeak wird heruntergeladen"
wget http://dl.4players.de/ts/releases/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2
echo -e "Entpacke Teamspeak"
bzip2 -d teamspeak3-server_linux_${arch}-${version}.tar.bz2
echo -e "Überschreibe Teamspeak mit neuer Version"
tar xf teamspeak3-server_linux_${arch}-${version}.tar
echo -e "Lösche überflüssiges Paket"
rm teamspeak3-server_linux_${arch}-${version}.tar
echo -e "Starte neue Version von Teamspeak"
./start.sh
 
Hm? Und was soll das Umfrageergebnis verdeutlichen? Hunde, Katzen oder doch Regenwürmer? :confused_alt:

Und was ist mit Perl, Python, PHP, Javascript, XYZ?

Scriptsprachen nimmt man gemäß der angedachten Aufgabe, wofür sie halt am besten paßt.

Mit PS läßt sich Windows prima verwalten, besser als mit jeder anderen.
Bash dasselbe für Unixoiden - da gibt's nicht nur Linux. Natürlich kann man DA auch noch Scripts für andere Interpreter schreiben -- gibt nicht nur sh und Kompatible.
Mit PHP holt man sich eine Datenbank schön eng an die Kommandozeile und kann so einen scriptfähigen Client für andere Anwendungen basteln.
Perl ist natürlich ein bissel ins Hintertreffen geraten, aber damit kann man nicht minder "alles" machen, was mit Programmiersprachen so möglich ist. Plus, CPAN.

Man zieht ja auch keine Handschuhe an die Füße. Stattdessen nimmt man einfach das passendste Werkzeug für das jeweilige Problem - wenn ich keinen Plan von Shellscripts hab, aber Powershell-Guru bin, dann muß ich mir halt eine Powershell unter Linux installieren und bin damit möglicherweise schneller fertig, als wie wenn ich noch hätte Shellscript lernen müssen; klar ist es nicht optimal, aber es ist an dieser Stelle immer noch das bessere Werkzeug gewesen: klar krieg ich mit einer Motorsäge den Baum schneller umgelegt, nützt mir nur nichts, wenn ich die nicht bedienen kann; dann muß ich das für mich beste Werkzeug nehmen.
 
  • Gefällt mir
Reaktionen: r15ch13 und areiland
Bash ist eine grausame Abomination. Habe aber gehört, dass PowerShell mindestens genau so schrecklich sein soll.
Bash kann man gut dafür gebrauchen um Python-Skripte auszuführen oder es durch zsh oder fish zu ersetzen.
 
RalphS schrieb:
Perl ist natürlich ein bissel ins Hintertreffen geraten, aber damit kann man nicht minder "alles" machen, was mit Programmiersprachen so möglich ist. Plus, CPAN.
Mit Perl kann man auch unter Windows so ziemlich alles machen und zwar sehr bequem. Beim Design von Powershell hat man sich nicht ohne Grund etwas an Perl orientiert. Warum das heute keiner mehr nimmt? IMHO weil es am Anfang zu viel Konzentration verlangt, mehr Nutzen als Schaden anzurichten. Solche Voraussetzungen sind heute nicht mehr so beliebt.
 
War auch nichts gegen Perl, nehm ich selber gern und pcre ist immer noch der Maßstab. :)
 
BeBur schrieb:
Bash ist eine grausame Abomination.
Nur für Leute die es nicht benutzen können :p

Solche Leute sind auch oft nicht fähig vi zu benutzen und regen sich über dessen Usability auf, nur, weil sie zu blöd oder zu faul sind, sich mit der Bedienung zu befassen.

Wenn man Ahnung hat was man macht und vorallem wie, sind beides wahnsinnig mächtige Werkzeuge, für die ich jede andere Script-Sprache gerne links liegen lasse.
 
rg88 schrieb:
Nur für Leute die es nicht benutzen können :p
Nur ein paar Beispiele: https://bashfulbytes.com/posts/bash_sux.html
Bash ist einfach unnötig grausam.
Auch z.B. bash aliases sind unnötig beschränkt. Da gibt es so viel.
Bash lohnt sich eigentlich nur wenn es konkrete Gründe gibt die dafür sprechen. Also Opt-In in Bash, nicht per default.

rg88 schrieb:
Solche Leute sind auch oft nicht fähig vi zu benutzen
Ich benutze ausschließlich vim.
 
Zurück
Oben