{"id":197714,"date":"2026-01-28T16:18:19","date_gmt":"2026-01-28T15:18:19","guid":{"rendered":"https:\/\/liora.io\/de\/?p=197714"},"modified":"2026-02-23T09:06:56","modified_gmt":"2026-02-23T08:06:56","slug":"bash-skripting","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/bash-skripting","title":{"rendered":"Bash-Skripting: Alles, was Du wissen musst"},"content":{"rendered":"\n<p><strong>Scripting bietet Dir die M\u00f6glichkeit, deine t\u00e4glichen Abl\u00e4ufe zu vereinfachen und zu optimieren. Bash-Skripte (Akronym f\u00fcr Bourne Again Shell) sind sehr leistungsstarke und n\u00fctzliche Werkzeuge f\u00fcr die Entwicklung.<\/strong><\/p>\n\n\n\n<p>Es handelt sich um einen Kommandozeilen-Interpreter f\u00fcr Unix- und <a href=\"https:\/\/liora.io\/de\/linux-betriebssystem-warum-ist-es-das-beliebteste-os-fuer-entwickler\">Linux<\/a>-Systeme. Er wurde 1989 von <b>Brian Fox<\/b> f\u00fcr das <b>GNU<\/b>-Projekt entwickelt, um die urspr\u00fcngliche <b>Bourne Shell<\/b> zu ersetzen, und brachte signifikante Verbesserungen in Bezug auf Funktionen und Kompatibilit\u00e4t.<\/p>\n\n\n\n<p><a href=\"https:\/\/liora.io\/de\/bash-bourne-again-shell-prinzip-vorteile-ausbildung\">Die Bedeutung von Bash in der Systemadministration und Softwareentwicklung<\/a> kann nicht untersch\u00e4tzt werden. Es erm\u00f6glicht die Automatisierung sich wiederholender Aufgaben, die Verwaltung gro\u00dfer Systeme und erleichtert die Entwicklung komplexer Skripte f\u00fcr verschiedene Anwendungen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-die-grundlagen-des-bash-scripting\">Die Grundlagen des Bash-Scripting<\/h2>\n\n\n\n<p>Bash-Scripting ist eine wesentliche F\u00e4higkeit f\u00fcr jeden, der mit Unix- oder Linux-Systemen arbeitet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-bash-und-bang-einfuhrung-in-shebang\">Bash und Bang: Einf\u00fchrung in Shebang<\/h3>\n\n\n\n<p>Das erste Schl\u00fcsselelement jedes Bash-Skripts ist die <b>Shebang<\/b>-Zeile. Sie teilt dem System mit, welchen Interpreter es zur Ausf\u00fchrung des Skripts verwenden soll.<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>#!\/bin\/bash<\/code><\/pre>\n\n\n\n<p>Das <b>#!<\/b> ist als Shebang bekannt, und <b>\/bin\/bash<\/b> gibt den Pfad zum Bash-Interpreter an. Diese Zeile ist entscheidend, da sie sicherstellt, dass das Skript von Bash interpretiert wird, auch wenn andere Shells auf dem System vorhanden sind.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-erster-schritt-hello-world\">Erster Schritt: Hello World!<\/h3>\n\n\n\n<p>Erstelle mit Deinem bevorzugten Texteditor eine Datei namens <b>hello.sh<\/b>, f\u00fcge den folgenden Inhalt hinzu und speichere sie:<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>#!\/bin\/bash\necho \"Hello World!\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ein-skript-ausfuhrbar-machen\">Ein Skript ausf\u00fchrbar machen<\/h3>\n\n\n\n<p>Standardm\u00e4\u00dfig hat eine Textdatei keine Berechtigungen, um wie ein Programm ausgef\u00fchrt zu werden. Um Dein Skript ausf\u00fchrbar zu machen, musst du den folgenden Befehl verwenden, um die Berechtigungen zu \u00e4ndern:<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>chmod +x hello.sh<\/code><\/pre>\n\n\n\n<p>Dann kannst Du die Berechtigungen mit dem folgenden Befehl \u00fcberpr\u00fcfen:<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>ls -l hello.sh<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Bash Scripting verstehen<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ausfuhrung-eines-skripts\">Ausf\u00fchrung eines Skripts<\/h3>\n\n\n\n<p>Um das Skript auszuf\u00fchren, gibt es mehrere M\u00f6glichkeiten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Relativer Pfad:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>.\/hello.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwendung der Bash-Shell:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>bash hello.sh<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dcber die sh-Shell, kann aber zu unterschiedlichen Verhaltensweisen f\u00fchren, wenn das Skript bash-spezifische Funktionen verwendet:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>sh hello.sh<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-grundlegende-befehle\">Grundlegende Befehle<\/h2>\n\n\n\n<p>Bash-Scripting basiert auf der effizienten Nutzung einer Vielzahl von Befehlen, um einfache und komplexe Aufgaben zu erledigen. Hier sind einige h\u00e4ufig verwendete Befehle zum Navigieren und Verwalten des Dateisystems:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dateien und Ordner im aktuellen Verzeichnis auflisten<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>ls<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verzeichnis wechseln<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>cd \/path\/to\/directory<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aktuelles Verzeichnis anzeigen<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>pwd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eine leere Datei erstellen oder den Zeitstempel einer bestehenden Datei aktualisieren<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>touch newfile.txt<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dateien oder Ordner l\u00f6schen<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>rm file.txt<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Lasse Dich in Bash schulen<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kombination-von-befehlen\">Kombination von Befehlen<\/h2>\n\n\n\n<p>Bash-Skripte werden m\u00e4chtig, wenn Du Befehle kombinierst, um komplexere Aufgaben zu erledigen. Hier sind einige Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwendung von \u201e<b>;<\/b>\u201c zum Ausf\u00fchren mehrerer Befehle in einer Sequenz<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>cd \/path\/to\/directory; ls; pwd<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ausgabeumleitung: Verwende <b>&gt;<\/b>, um die Ausgabe eines Befehls in eine Datei umzuleiten, oder <b>&gt;&gt;<\/b>, um zu einer bestehenden Datei hinzuzuf\u00fcgen<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>echo \"Hello, World!\" &gt; hello.txt\necho \"Hello again!\" &gt;&gt; hello.txt<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwendung von Pipe ( | ), um die Ausgabe eines Befehls als Eingabe f\u00fcr einen anderen Befehl zu verwenden<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>ls -l | grep \".txt\"<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-variablen-und-substitution\">Variablen und Substitution<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Erkl\u00e4rung einer Variablen und deren Nutzung mit <b>$<\/b><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>NAME=\u201dAlice\u201d\necho \u201cHello, $NAME!\u201d<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verwendung der Substitution, um die Ausgabe eines Befehls als Variable zu verwenden<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>DATE=$(date)\necho \"Today's date is $DATE\"<\/code><\/pre>\n\n\n\n<p><em>Beachte, dass dieses Beispiel h\u00e4ufig bei der Erstellung von Logs verwendet wird.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-pfadverwaltung\">Pfadverwaltung<\/h2>\n\n\n\n<p>Das Verst\u00e4ndnis und die Verwaltung von Dateipfaden sind unerl\u00e4sslich, um effizient im Dateisystem zu navigieren und robuste Skripte zu schreiben.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-absoluter-pfad-vs-relativer-pfad\">Absoluter Pfad vs relativer Pfad<\/h3>\n\n\n\n<div>\n  <table style=\"width:100%;border-collapse: collapse;border: 1px solid #ddd\">\n    <thead>\n      <tr style=\"background-color: #ff6745;color: #efefef\">\n        <th style=\"border: 1px solid #ddd;padding: 8px\">\n          <figure><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/07\/image1-2.png\" alt=\"Image\" width=\"50\" height=\"50\"><\/figure>\n        <\/th>\n        <th style=\"border: 1px solid #ddd;padding: 8px\">Absolut<\/th>\n        <th style=\"border: 1px solid #ddd;padding: 8px\">\n          <figure><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/07\/image2-3.png\" alt=\"Image\" width=\"50\" height=\"50\"><\/figure>\n        <\/th>\n        <th style=\"border: 1px solid #ddd;padding: 8px\">Relativ<\/th>\n      <\/tr>\n    <\/thead>\n    <tbody>\n      <tr>\n        <td colspan=\"2\" style=\"border: 1px solid #ddd;padding: 8px\">\n          Gibt den vollst\u00e4ndigen Pfad zu einer Datei oder einem Verzeichnis vom Stammverzeichnis des Dateisystems an.\n        <\/td>\n        <td colspan=\"2\" style=\"border: 1px solid #ddd;padding: 8px\">\n          Gibt den Pfad zu einer Datei oder einem Verzeichnis relativ zum aktuellen Verzeichnis an.\n        <\/td>\n      <\/tr>\n      <tr>\n        <td colspan=\"2\" style=\"border: 1px solid #ddd;padding: 8px\">\n          Beispiel: \/home\/user\/documents\/report.txt\n        <\/td>\n        <td colspan=\"2\" style=\"border: 1px solid #ddd;padding: 8px\">\n          Beispiel: documents\/report.txt\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Alles \u00fcber Bash Scripting verstehen<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-zugehorige-befehle\">Zugeh\u00f6rige Befehle<\/h3>\n\n\n\n<p>Um Dateien und Befehle zu lokalisieren, stehen in Bash mehrere Tools zur Verf\u00fcgung:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Den Speicherort eines ausf\u00fchrbaren Programms finden<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>which bash<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ort von Bin\u00e4rdateien, Quellcodes und zugeh\u00f6rigen Dokumentationen zu einem Befehl<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>whereis bash<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dateien und Ordner durchsuchen<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>find \/home\/user -name \"report.txt\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-umgebungsvariablen\">Umgebungsvariablen<\/h3>\n\n\n\n<p>Umgebungsvariablen sind Schl\u00fcssel-Wert-Paare, die das Verhalten von Systemprozessen beeinflussen. Hier sind die gebr\u00e4uchlichsten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>$PATH<\/b>: enth\u00e4lt eine Liste von Verzeichnissen, in denen das System nach ausf\u00fchrbaren Dateien sucht. Um es zu \u00e4ndern, verwende den folgenden Befehl<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>export PATH=$PATH:\/new\/directory\/path<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>$HOME<\/b>: stellt das pers\u00f6nliche Verzeichnis des Benutzers dar<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>echo $HOME\ncd $HOME<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>$PWD<\/b>: gibt das aktuelle Arbeitsverzeichnis an<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>echo $PWD<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>$USER<\/b>: enth\u00e4lt den aktuellen Benutzernamen<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>echo $USER<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-fluss-und-logikkontrolle\">Fluss- und Logikkontrolle<\/h2>\n\n\n\n<p>Fluss- und Logikkontrolle sind wesentliche Elemente des Bash-Scripting und erm\u00f6glichen das Schreiben dynamischer und anpassungsf\u00e4higer Skripte.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Alles \u00fcber Bash Scripting<\/a><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-bedingte-anweisungen\">Bedingte Anweisungen<\/h3>\n\n\n\n<p>Sie erm\u00f6glichen die Ausf\u00fchrung von Code basierend auf bestimmten Bedingungen. Hier ist ein Beispiel f\u00fcr die Verwendung von <b>if\u2026elif\u2026else<\/b>.<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>#!\/bin\/bash\necho \"Entrez un nombre : \"\nread number\nif &#091; $number -gt 10 ]; then\n    echo \"Le nombre est plus grand que 10.\"\nelif &#091; $number -eq 10 ]; then\n    echo \"Le nombre est \u00e9gal \u00e0 10.\"\nelse\n    echo \"Le nombre est plus petit que 10.\"\nfi<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-schleifen\">Schleifen<\/h3>\n\n\n\n<p>Schleifen werden verwendet, um Befehle mehrmals zu wiederholen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>for<\/b><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>for i in 1 2 3 4 5; do\n    echo \"Compteur : $i\"\ndone<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>while<\/b><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>count=1\nwhile &#091; $count -le 5 ]; do\n    echo \"Compteur : $count\"\n    ((count++))\ndone<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>until<\/b><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\"><code>count=1\nuntil &#091; $count -gt 5 ]; do\n    echo \"Compteur : $count\"\n    ((count++))\ndone<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Lasse Dich in Bash schulen<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-einige-nutzliche-skripte-und-best-practices\">Einige n\u00fctzliche Skripte und Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-beispielscripte\">Beispielscripte<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Backup-Skript<\/b>: Kopiert Dateien von einer Quelle an ein Ziel<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>#!\/bin\/bash\n# Ce script effectue une sauvegarde des fichiers\nsrc=\"\/home\/user\/documents\"\ndest=\"\/backup\/documents\"\n\nif &#091; ! -d $dest ]; then\n    mkdir -p $dest\nfi\n\nfor file in $src\/*; do\n    if &#091; -f $file ]; then\n        cp $file $dest\n        echo \"Copi\u00e9 $file vers $dest\"\n    fi\ndone<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Bereinigung<\/b>: L\u00f6schen von Elementen in einem tempor\u00e4ren Verzeichnis<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\"><code>#!\/bin\/bash\ndir=\"\/home\/user\/temp\"\necho \"Nettoyage du r\u00e9pertoire $dir\"\n\nfor file in $dir\/*; do\n    if &#091; -f $file ]; then\n        rm $file\n        echo \"Supprim\u00e9 $file\"\n    fi\ndone<\/code><\/pre>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Bash Scripting beherrschen<\/a><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-einige-best-practices\">Einige Best Practices<\/h2>\n\n\n\n<p><strong><b>1. Kommentiere<\/b>: Dies macht die Skripte lesbarer und verst\u00e4ndlicher.<\/strong><\/p>\n\n\n\n<p><b>2. Benenne<\/b> deine Variablen aussagekr\u00e4ftig. Vermeide Variablennamen wie $var1, $var2 oder $tmpvar.<\/p>\n\n\n\n<p><b>3. Fehlerbehandlung<\/b>: Verwende Bedingungen, um den Erfolg zu \u00fcberpr\u00fcfen und Fehler angemessen zu erfassen.<\/p>\n\n\n\n<p><b>4. Modularisiere deinen Code<\/b> durch den Einsatz von Funktionen, insbesondere wenn das Skript mehrere Operationen ausf\u00fchrt, zum Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><code>backup_files() {\n    # Code pour effectuer la sauvegarde\n}<\/code><\/pre>\n\n\n\n<p><b>5. Debugge, um Fehler zu identifizieren<\/b>. Hier sind n\u00fctzliche Befehle daf\u00fcr<\/p>\n\n\n\n<pre class=\"wp-block-code has-xsmall-font-size\"><code>#!\/bin\/bash\nset -x # Active le mode trace, affichant chaque commande et son r\u00e9sultat\n# Code du script\n\n#!\/bin\/bash\nset -e # Arr\u00eate le script en cas d\u2019erreur\n# Code du script\n\necho \"D\u00e9but du script\" # Utilisation de echo \u00e0 des points strat\u00e9giques du scripts pour v\u00e9rifier les sorties et suivre les flux d\u2019ex\u00e9cution<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-fazit\">Fazit<\/h2>\n\n\n\n<p>Das Bash-Scripting ist ein leistungsf\u00e4higes Werkzeug <b>zur Automatisierung und Vereinfachung von Aufgaben auf Unix- und Linux-Systemen<\/b>. Durch das Beherrschen der Grundlagen, der grundlegenden Befehle, der Pfadverwaltung, der Flusskontrolle und Best Practices kannst du <b>robuste und effektive Skripte schreiben<\/b>, um deine t\u00e4gliche Produktivit\u00e4t zu verbessern.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Entdecke Bash im Linux Betriebssystem<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Die Grundlagen des Bash-Scripting\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Bash-Scripting beginnt mit der Shebang-Zeile '#!\/bin\/bash', die den Interpreter angibt. Ein erstes Skript 'Hello World!' wird mit 'echo' erstellt. Mit 'chmod +x' wird das Skript ausf\u00fchrbar gemacht. Die Ausf\u00fchrung erfolgt via relativem Pfad (.\/hello.sh) oder durch Aufruf der Bash-Shell (bash hello.sh).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Grundlegende Befehle\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Wichtige Befehle f\u00fcr Dateisystem-Navigation und -Verwaltung: ls (Dateien auflisten), cd (Verzeichnis wechseln), pwd (aktuelles Verzeichnis anzeigen), touch (Datei erstellen\/Zeitstempel aktualisieren), rm (Dateien\/Ordner l\u00f6schen).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Kombination von Befehlen\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Befehle k\u00f6nnen kombiniert werden: Mit ';' werden mehrere Befehle sequentiell ausgef\u00fchrt. Mit '&gt;' wird Ausgabe in Datei umgeleitet, mit '&gt;&gt;' angeh\u00e4ngt. Mit '|' (Pipe) wird die Ausgabe eines Befehls als Eingabe f\u00fcr den n\u00e4chsten verwendet (z.B. 'ls -l | grep \\\".txt\\\"').\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Variablen und Substitution\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Variablen werden ohne $-Zeichen deklariert (NAME='Alice') und mit $ gelesen (echo \\\"Hello, $NAME!\\\"). Mit Substitution kann die Ausgabe eines Befehls als Variable verwendet werden: DATE=$(date).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Pfadverwaltung\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Absolute Pfade geben den vollst\u00e4ndigen Pfad vom Stammverzeichnis an (z.B. \/home\/user\/dokument.txt), relative Pfade beziehen sich auf das aktuelle Verzeichnis (z.B. dokumente\/report.txt). Wichtige Befehle: which (Programmpfad finden), whereis (Bin\u00e4rdateien\/Quellen\/Dokumentation finden), find (Dateien durchsuchen). Wichtige Umgebungsvariablen: $PATH (Suchpfade f\u00fcr ausf\u00fchrbare Dateien), $HOME (Benutzerverzeichnis), $PWD (aktuelles Arbeitsverzeichnis), $USER (aktueller Benutzername).\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Fluss- und Logikkontrolle\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Bedingte Anweisungen (if...elif...else) erm\u00f6glichen codebasierte Entscheidungen. Schleifen: for (f\u00fcr feste Wiederholungen), while (solange Bedingung wahr), until (bis Bedingung wahr wird). Beispiele zeigen die Verwendung f\u00fcr Z\u00e4hlerschleifen.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Einige n\u00fctzliche Skripte und Best Practices\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Beispielskripte: Backup-Skript (kopiert Dateien von Quelle zu Ziel, erstellt Zielverzeichnis falls n\u00f6tig), Bereinigungsskript (l\u00f6scht Dateien in temp-Verzeichnis). Best Practices: Code kommentieren, aussagekr\u00e4ftige Variablennamen verwenden, Fehlerbehandlung einbauen, Code modularisieren (Funktionen), Debugging mit 'set -x' (Trace-Modus), 'set -e' (Abbruch bei Fehlern) und strategischen echo-Ausgaben.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Fazit\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Bash-Scripting ist ein leistungsf\u00e4higes Werkzeug zur Automatisierung auf Unix\/Linux-Systemen. Die Beherrschung von Grundlagen, Befehlen, Pfadverwaltung, Flusskontrolle und Best Practices erm\u00f6glicht das Schreiben robuster Skripte zur Produktivit\u00e4tssteigerung.\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Scripting bietet Dir die M\u00f6glichkeit, deine t\u00e4glichen Abl\u00e4ufe zu vereinfachen und zu optimieren. Bash-Skripte (Akronym f\u00fcr Bourne Again Shell) sind sehr leistungsstarke und n\u00fctzliche Werkzeuge f\u00fcr die Entwicklung.<\/p>\n","protected":false},"author":50,"featured_media":197716,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2476],"class_list":["post-197714","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-dev"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/197714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=197714"}],"version-history":[{"count":5,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/197714\/revisions"}],"predecessor-version":[{"id":219311,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/197714\/revisions\/219311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/197716"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=197714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=197714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}