{"id":4938,"date":"2026-08-10T22:34:03","date_gmt":"2026-08-10T22:34:03","guid":{"rendered":"https:\/\/netguide.io\/linux\/bash-skript-erstellen-linux\/"},"modified":"2026-08-10T23:46:42","modified_gmt":"2026-08-10T23:46:42","slug":"bash-skript-erstellen-linux","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/bash-skript-erstellen-linux\/","title":{"rendered":"Bash-Skript erstellen unter Linux \u2013 Einsteiger-Guide"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTE2NDQzODA5NTkiIGNsYXNzPSJuZXRndWlkZWEtYmVmb3JlLWNvbnRlbnQgbmV0Z3VpZGVhLWVudGl0eS1wbGFjZW1lbnQiPjxkaXYgY2xhc3M9Im5ldGd1aWRlYS1hZGxhYmVsIj5BZHZlcnRpc2VtZW50czwvZGl2PjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcz9jbGllbnQ9Y2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxpbnMgY2xhc3M9ImFkc2J5Z29vZ2xlIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgCmRhdGEtYWQtc2xvdD0iMzQ5NDExNTM0MiIgCmRhdGEtYWQtZm9ybWF0PSJhdXRvIj48L2lucz4KPHNjcmlwdD4gCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7IAo8L3NjcmlwdD4KPC9kaXY+<\/script>\n<p class=\"wp-block-paragraph\">Immer die gleichen Befehle tippen? Das l\u00e4sst sich automatisieren. Ein Bash-Skript b\u00fcndelt mehrere Kommandos in einer Datei, die du mit einem Aufruf startest. In diesem Einsteiger-Guide lernst du, wie du ein <strong>Bash-Skript unter Linux erstellst<\/strong> \u2013 von der Shebang-Zeile \u00fcber Variablen bis zu Bedingungen und Schleifen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wiederkehrende Aufgaben von Hand einzutippen kostet Zeit und ist fehleranf\u00e4llig. Ein <strong>Bash-Skript<\/strong> nimmt dir diese Arbeit ab: Du fasst mehrere Befehle in einer Datei zusammen, f\u00fchrst sie mit einem einzigen Aufruf aus und automatisierst so Backups, Deployments oder Wartungsroutinen. In diesem Einsteiger-Guide schreibst du dein erstes Skript, machst es ausf\u00fchrbar und lernst die Bausteine kennen, mit denen aus einer simplen Befehlsliste ein robustes Werkzeug wird.<\/p>\n\n\n\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-1ffd1ad5      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tInhaltsverzeichnis\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#schritt-1-die-skript-datei-anlegen\" class=\"uagb-toc-link__trigger\">Schritt 1: Die Skript-Datei anlegen<\/a><li class=\"uagb-toc__list\"><a href=\"#schritt-2-ausf\u00fchrbar-machen-und-starten\" class=\"uagb-toc-link__trigger\">Schritt 2: Ausf\u00fchrbar machen und starten<\/a><li class=\"uagb-toc__list\"><a href=\"#schritt-3-variablen-verwenden\" class=\"uagb-toc-link__trigger\">Schritt 3: Variablen verwenden<\/a><li class=\"uagb-toc__list\"><a href=\"#schritt-4-bedingungen-if\" class=\"uagb-toc-link__trigger\">Schritt 4: Bedingungen (if)<\/a><li class=\"uagb-toc__list\"><a href=\"#schritt-5-schleifen-for\" class=\"uagb-toc-link__trigger\">Schritt 5: Schleifen (for)<\/a><li class=\"uagb-toc__list\"><a href=\"#tipp-skripte-robuster-machen\" class=\"uagb-toc-link__trigger\">Tipp: Skripte robuster machen<\/a><li class=\"uagb-toc__list\"><a href=\"#skripte-automatisch-ausf\u00fchren\" class=\"uagb-toc-link__trigger\">Skripte automatisch ausf\u00fchren<\/a><li class=\"uagb-toc__list\"><a href=\"#die-shebang-zeile-und-ausf\u00fchrbarkeit\" class=\"uagb-toc-link__trigger\">Die Shebang-Zeile und Ausf\u00fchrbarkeit<\/a><li class=\"uagb-toc__list\"><a href=\"#robuste-skripte-mit-set-euo-pipefail\" class=\"uagb-toc-link__trigger\">Robuste Skripte mit set -euo pipefail<\/a><li class=\"uagb-toc__list\"><a href=\"#variablen-argumente-und-bedingungen\" class=\"uagb-toc-link__trigger\">Variablen, Argumente und Bedingungen<\/a><li class=\"uagb-toc__list\"><a href=\"#h\u00e4ufige-fragen\" class=\"uagb-toc-link__trigger\">H\u00e4ufige Fragen<\/a><li class=\"uagb-toc__list\"><a href=\"#warum-bekomme-ich-permission-denied\" class=\"uagb-toc-link__trigger\">Warum bekomme ich \u201ePermission denied\u201c?<\/a><li class=\"uagb-toc__list\"><a href=\"#was-ist-der-unterschied-zwischen-sh-und-bash\" class=\"uagb-toc-link__trigger\">Was ist der Unterschied zwischen sh und bash?<\/a><li class=\"uagb-toc__list\"><a href=\"#wie-debugge-ich-ein-bash-skript\" class=\"uagb-toc-link__trigger\">Wie debugge ich ein Bash-Skript?<\/a><li class=\"uagb-toc__list\"><a href=\"#fazit\" class=\"uagb-toc-link__trigger\">Fazit<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 1: Die Skript-Datei anlegen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Bash-Skript ist eine einfache Textdatei, \u00fcblicherweise mit der Endung <code>.sh<\/code>. Lege sie an:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>nano mein-skript.sh<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">nano<\/span><span style=\"color: #9ECBFF\"> mein-skript.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Die erste Zeile ist die sogenannte <strong>Shebang<\/strong>. Sie sagt dem System, mit welchem Interpreter das Skript ausgef\u00fchrt werden soll:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\necho \"Hallo Welt!\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">echo<\/span><span style=\"color: #9ECBFF\"> \"Hallo Welt!\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 2: Ausf\u00fchrbar machen und starten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bevor du das Skript starten kannst, muss es ausf\u00fchrbar sein. Das erledigt <code>chmod<\/code>:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>chmod +x mein-skript.sh\n.\/mein-skript.sh<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">chmod<\/span><span style=\"color: #9ECBFF\"> +x<\/span><span style=\"color: #9ECBFF\"> mein-skript.sh<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">.\/mein-skript.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Der Punkt-Schr\u00e4gstrich <code>.\/<\/code> vor dem Namen ist n\u00f6tig, weil das aktuelle Verzeichnis normalerweise nicht im Suchpfad liegt.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 3: Variablen verwenden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Variablen speichern Werte zur Wiederverwendung. Wichtig: Bei der Zuweisung <strong>keine Leerzeichen<\/strong> um das Gleichheitszeichen, beim Auslesen ein <code>$<\/code> voranstellen:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\nNAME=\"Tobias\"\necho \"Hallo $NAME\"\n\n# Ausgabe eines Befehls in einer Variable speichern\nDATUM=$(date +%Y-%m-%d)\necho \"Heute ist der $DATUM\"<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">NAME<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #9ECBFF\">\"Tobias\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">echo<\/span><span style=\"color: #9ECBFF\"> \"Hallo <\/span><span style=\"color: #E1E4E8\">$NAME<\/span><span style=\"color: #9ECBFF\">\"<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\"># Ausgabe eines Befehls in einer Variable speichern<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">DATUM<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">$(<\/span><span style=\"color: #B392F0\">date<\/span><span style=\"color: #9ECBFF\"> +%Y-%m-%d<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">echo<\/span><span style=\"color: #9ECBFF\"> \"Heute ist der <\/span><span style=\"color: #E1E4E8\">$DATUM<\/span><span style=\"color: #9ECBFF\">\"<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 4: Bedingungen (if)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mit <code>if<\/code> reagierst du auf unterschiedliche Situationen. Ein typisches Beispiel pr\u00fcft, ob ein Verzeichnis existiert:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\nif [ -d \"\/opt\/backup\" ]; then\n  echo \"Backup-Ordner existiert.\"\nelse\n  echo \"Ordner fehlt - wird erstellt.\"\n  mkdir -p \/opt\/backup\nfi<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> [ <\/span><span style=\"color: #F97583\">-d<\/span><span style=\"color: #9ECBFF\"> \"\/opt\/backup\"<\/span><span style=\"color: #E1E4E8\"> ]; <\/span><span style=\"color: #F97583\">then<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">  echo<\/span><span style=\"color: #9ECBFF\"> \"Backup-Ordner existiert.\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">  echo<\/span><span style=\"color: #9ECBFF\"> \"Ordner fehlt - wird erstellt.\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">  mkdir<\/span><span style=\"color: #79B8FF\"> -p<\/span><span style=\"color: #9ECBFF\"> \/opt\/backup<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">fi<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Schritt 5: Schleifen (for)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Schleifen wiederholen Aktionen. Diese <code>for<\/code>-Schleife durchl\u00e4uft alle <code>.log<\/code>-Dateien im aktuellen Verzeichnis:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\n\nfor datei in *.log; do\n  echo \"Verarbeite: $datei\"\ndone<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> datei <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #9ECBFF\"> *.log<\/span><span style=\"color: #E1E4E8\">; <\/span><span style=\"color: #F97583\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">  echo<\/span><span style=\"color: #9ECBFF\"> \"Verarbeite: <\/span><span style=\"color: #E1E4E8\">$datei<\/span><span style=\"color: #9ECBFF\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">done<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Tipp: Skripte robuster machen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein bew\u00e4hrter Profi-Tipp ist, das Skript direkt nach der Shebang abzusichern. Diese Zeile sorgt daf\u00fcr, dass das Skript bei einem Fehler abbricht, statt blind weiterzulaufen:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>#!\/bin\/bash\nset -euo pipefail<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">#!\/bin\/bash<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">set<\/span><span style=\"color: #79B8FF\"> -euo<\/span><span style=\"color: #9ECBFF\"> pipefail<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>-e<\/code> bricht bei Fehlern ab, <code>-u<\/code> meldet nicht gesetzte Variablen und <code>pipefail<\/code> erkennt Fehler in Pipes. Das erspart dir viele unangenehme \u00dcberraschungen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Skripte automatisch ausf\u00fchren<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der eigentliche Nutzen entsteht, wenn dein Skript von selbst l\u00e4uft. Daf\u00fcr gibt es zwei bew\u00e4hrte Wege: zeitgesteuert per <a href=\"https:\/\/netguide.io\/linux\/de\/cronjobs-linux-crontab-einrichten\/\">Cronjob<\/a> oder als dauerhafter Dienst \u00fcber einen <a href=\"https:\/\/netguide.io\/linux\/de\/systemd-service-erstellen-linux\/\">systemd-Service<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Die Shebang-Zeile und Ausf\u00fchrbarkeit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jedes Bash-Skript beginnt mit der sogenannten Shebang-Zeile <code>#!\/bin\/bash<\/code>. Sie sagt dem System, mit welchem Interpreter die Datei ausgef\u00fchrt werden soll. Ohne sie wei\u00df Linux nicht, dass es sich um ein Bash-Skript handelt. Anschlie\u00dfend machst du die Datei mit <code>chmod +x skript.sh<\/code> ausf\u00fchrbar und startest sie mit <code>.\/skript.sh<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Aufruf<\/th><th>Bedeutung<\/th><\/tr><\/thead><tbody><tr><td><code>.\/skript.sh<\/code><\/td><td>Nutzt die Shebang-Zeile, Datei muss ausf\u00fchrbar sein<\/td><\/tr><tr><td><code>bash skript.sh<\/code><\/td><td>Startet explizit mit Bash, Shebang optional<\/td><\/tr><tr><td><code>source skript.sh<\/code><\/td><td>F\u00fchrt im aktuellen Shell-Kontext aus (Variablen bleiben)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Robuste Skripte mit set -euo pipefail<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Standardm\u00e4\u00dfig l\u00e4uft ein Bash-Skript nach einem Fehler einfach weiter \u2013 oft mit fatalen Folgen. Mit einer strengen Fehlerbehandlung ganz am Anfang machst du dein Skript deutlich sicherer. Die Zeile <code>set -euo pipefail<\/code> sorgt daf\u00fcr, dass das Skript bei Fehlern sofort abbricht, statt im ung\u00fcltigen Zustand weiterzumachen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>set -e<\/code> \u2013 bricht bei jedem fehlgeschlagenen Befehl ab.<\/li>\n\n<li><code>set -u<\/code> \u2013 behandelt nicht gesetzte Variablen als Fehler.<\/li>\n\n<li><code>set -o pipefail<\/code> \u2013 erkennt Fehler auch innerhalb von Pipes.<\/li>\n\n<li>Anf\u00fchrungszeichen um Variablen (<code>\"$var\"<\/code>) verhindern Probleme mit Leerzeichen.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Variablen, Argumente und Bedingungen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der wahre Nutzen von Skripten entsteht durch Flexibilit\u00e4t. \u00dcber Argumente wie <code>$1<\/code> und <code>$2<\/code> \u00fcbergibst du Werte beim Aufruf, mit <code>if<\/code>-Abfragen reagierst du auf Bedingungen. So wird aus einer starren Befehlsliste ein Werkzeug, das sich an unterschiedliche Situationen anpasst \u2013 etwa ein Backup-Skript, das den Zielordner als Argument entgegennimmt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Wiederholungen nutzt du Schleifen: Eine <code>for<\/code>-Schleife arbeitet eine Liste von Dateien ab, eine <code>while<\/code>-Schleife l\u00e4uft, solange eine Bedingung erf\u00fcllt ist. Kommentare mit <code>#<\/code> helfen dir und anderen, das Skript sp\u00e4ter noch zu verstehen. F\u00fcr l\u00e4ngere Ausgaben oder Men\u00fcs greifst du auf <code>echo<\/code> oder <code>printf<\/code> zur\u00fcck, und mit <code>read<\/code> fragst du bei Bedarf Eingaben vom Benutzer ab.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sobald ein Skript w\u00e4chst, lohnen sich Funktionen. Sie b\u00fcndeln wiederkehrende Logik unter einem Namen, machen den Ablauf lesbarer und lassen sich an mehreren Stellen aufrufen, statt Code zu kopieren. Ebenso hilfreich ist ein bewusster Umgang mit Exit-Codes: Beende dein Skript mit <code>exit 0<\/code> bei Erfolg und einem Wert ungleich null im Fehlerfall, damit \u00fcbergeordnete Skripte oder ein Cronjob erkennen k\u00f6nnen, ob der Lauf geklappt hat. Diese kleinen Gewohnheiten machen aus einem Wegwerf-Skript ein zuverl\u00e4ssiges Werkzeug.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">H\u00e4ufige Fragen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die h\u00e4ufigsten Fragen von Bash-Einsteigern.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warum bekomme ich \u201ePermission denied\u201c?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dann ist die Datei noch nicht ausf\u00fchrbar. Mit <code>chmod +x skript.sh<\/code> gibst du ihr das Ausf\u00fchrungsrecht. Alternativ startest du das Skript direkt \u00fcber <code>bash skript.sh<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Was ist der Unterschied zwischen sh und bash?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>sh<\/code> ist eine minimalere Shell mit weniger Funktionen. Bash bietet Erweiterungen wie Arrays und <code>[[ ]]<\/code>-Tests. Nutze in der Shebang <code>#!\/bin\/bash<\/code>, wenn du diese Features brauchst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Wie debugge ich ein Bash-Skript?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Starte es mit <code>bash -x skript.sh<\/code>. Der Schalter <code>-x<\/code> gibt jeden Befehl vor der Ausf\u00fchrung aus, sodass du genau siehst, an welcher Stelle etwas schiefl\u00e4uft.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Fazit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mit Shebang, <code>chmod +x<\/code> und den Grundbausteinen Variablen, <code>if<\/code> und <code>for<\/code> schreibst du im Handumdrehen n\u00fctzliche Bash-Skripte. Mach sie mit <code>set -euo pipefail<\/code> robust und lass sie per Cron oder systemd automatisch laufen \u2013 so nimmt dir dein Server wiederkehrende Arbeit ab. Ein klassischer Anwendungsfall sind Backups, etwa deiner <a href=\"https:\/\/netguide.io\/linux\/de\/docker-volumes-daten-persistent-speichern\/\">Docker Volumes<\/a>.<\/p>\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTc5NTgwOTIiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>Bash-Skript unter Linux erstellen: Shebang, ausf\u00fchrbar machen, Variablen, Bedingungen und Schleifen \u2013 die Grundlagen zum Automatisieren im Terminal.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9],"tags":[],"class_list":["post-4938","post","type-post","status-publish","format-standard","hentry","category-linux"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Tobias Pries","author_link":"https:\/\/netguide.io\/linux\/author\/tobias-pries\/"},"uagb_comment_info":0,"uagb_excerpt":"Bash-Skript unter Linux erstellen: Shebang, ausf\u00fchrbar machen, Variablen, Bedingungen und Schleifen \u2013 die Grundlagen zum Automatisieren im Terminal.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/comments?post=4938"}],"version-history":[{"count":2,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4938\/revisions"}],"predecessor-version":[{"id":5000,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/4938\/revisions\/5000"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=4938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=4938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=4938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}