{"id":21245,"date":"2025-11-10T12:49:30","date_gmt":"2025-11-10T11:49:30","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=21245"},"modified":"2025-11-12T06:13:44","modified_gmt":"2025-11-12T05:13:44","slug":"die-shell-working-in-a-coalmine-teil-2","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2025\/11\/10\/die-shell-working-in-a-coalmine-teil-2\/","title":{"rendered":"die shell &#8211; working in a coalmine Teil 2"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Die FOR-Schleife<\/h2>\n\n\n\n<p>Im ersten Teil haben wir uns mit einem Telefonbuch besch&auml;ftigt. Und mit ein paar <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/befehl\/\" target=\"_self\" title=\"Ein Befehl in Linux ist eine Anweisung, die &uuml;ber die Kommandozeile eingegeben wird, um verschiedene Aktionen auszuf&uuml;hren. Mit Linux-Befehlen k&ouml;nnen Sie Ihr System steuern, Dateien verwalten, Programme ausf&uuml;hren und vieles mehr. Hier sind einige wichtige Linux-Befehle: ls: Zeigt den Inhalt des aktuellen Verzeichnisses an. cd: Wechselt das Verzeichnis. mkdir: Erstellt ein neues Verzeichnis. rm: L&ouml;scht&hellip;\" class=\"encyclopedia\">Befehl<\/a>en es auch ausgewertet. Heute wollen wir dieses Telefonbuch in Schleifen bearbeiten. Ja die <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">shell<\/a> kann mehrere Arten von Schleifen, die FOR und die WHILE\/UNTIL Schleifen. Der Unterschied liegt u.a. im minimalen Durchlauf.<\/p>\n\n\n\n<p>Bleiben wir zun&auml;chst bei der FOR-Schleife. Die For-Schleife hat jetzt folgenden Aufbau. Das Keywort &bdquo;for&ldquo; und dann die Variable und eine Liste. Und jetzt haben wir den ersten Unterschied in den diversen <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">shell<\/a>s. In der <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/bash\/\" target=\"_self\" title='Die Abk&uuml;rzung \"bash\" steht f&uuml;r \"Bourne Again Shell\". Die Bash ist eine Shell, die als Mensch-Maschine-Schnittstelle dient und eine Umgebung bereitstellt, in der zeilenweise Texteingaben und -ausgaben m&ouml;glich sind. Sie ist eine Weiterentwicklung der Bourne-Shell und wird als Standard-Shell auf den meisten Linux-Systemen verwendet. Die Bash ist auch eine Skriptsprache, die zum Erstellen von Shell-Skripten&hellip;' class=\"encyclopedia\">bash<\/a> w&auml;re jetzt auch eine Bedingung und ein Z&auml;hler m&ouml;glich (C Syntax). Heute wollen wir noch nichts damit machen, wir begn&uuml;gen uns mit einer Liste und dem zweiten Keywort &bdquo;in&ldquo;. Dann kommen die Keyw&ouml;rter &bdquo;do&ldquo; und &bdquo;done&ldquo;, die die Schleife starten bzw. beenden.<\/p>\n\n\n\n<p>for  VARIABLE in LISTE<br>do<br>    <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/befehl\/\" target=\"_self\" title=\"Ein Befehl in Linux ist eine Anweisung, die &uuml;ber die Kommandozeile eingegeben wird, um verschiedene Aktionen auszuf&uuml;hren. Mit Linux-Befehlen k&ouml;nnen Sie Ihr System steuern, Dateien verwalten, Programme ausf&uuml;hren und vieles mehr. Hier sind einige wichtige Linux-Befehle: ls: Zeigt den Inhalt des aktuellen Verzeichnisses an. cd: Wechselt das Verzeichnis. mkdir: Erstellt ein neues Verzeichnis. rm: L&ouml;scht&hellip;\" class=\"encyclopedia\">befehl<\/a> &hellip;<br>    ..<br>    ..<br>done<\/p>\n\n\n\n<p>Wenn wir unser Telefonbuch Zeile f&uuml;r Zeile ansehen wollen, dann k&ouml;nnen wir das mit einer Schleife machen. Dazu muss ich noch etwas erkl&auml;ren. In der <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">shell<\/a> kann ich Sub-Prozesse starten, die mir das Ergebnis (Liste) in meine Haupt<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">shell<\/a> liefern. Solche Sub-<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">Shell<\/a>s werden mit dem Zeichen ` (Accent grave) eingeschlossen. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for ZEILE in `<span style=\"background-color: initial;font-family: inherit;font-size: inherit;text-align: initial;color: initial\">cat telefonbuch.txt <\/span>`\ndo\n   echo \"$ZEILE\" \ndone\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Tabs, Blanks(Leertaste) und NewLine<\/h2>\n\n\n\n<p><br>Da sind die leidlichen Zeichen die das <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/script\/\" target=\"_self\" title=\"Mit einem Script ist ein kleines Programm im Textformat gemeint, dass nicht kompiliert, sondern von einem Interpreter direkt ausgef&uuml;hrt wird. Als Beispiel Linux Shell Scripts f&uuml;r Linux, oder auch Perl Scripts, die durch einen Perl Interpreter ausgef&uuml;hrt werden.\" class=\"encyclopedia\">script<\/a>en so schwer machen. Diese 3 Zeichen trennen eine Liste von Haus aus in einzelne Felder auf. Will ich das? Jein. Es ist ganz praktisch, wenn ich <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/daten\/\" target=\"_self\" title='Unter \"Daten\" versteht man Informationen, die auf dem Dateisystem gespeichert sind. Diese Informationen k&ouml;nnen in Form von Dateien oder Verzeichnissen vorliegen. Linux verwendet ein hierarchisches Dateisystem, das sich von dem in Windows unterscheidet. Das Wurzelverzeichnis \"\/\" ist der oberste Verzeichnisbaum, von dem aus alle anderen Verzeichnisse und Dateien abzweigen.' class=\"encyclopedia\">Daten<\/a> ohne B<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/lan\/\" target=\"_self\" title=\"Ein LAN (Local Area Network) ist ein lokales Netzwerk, das in der Regel in einem begrenzten physischen Bereich wie einem Geb&auml;ude oder einem Haus eingerichtet ist. Es erm&ouml;glicht die Kommunikation und den Datenaustausch zwischen verschiedenen Ger&auml;ten wie Computern, Laptops, Druckern und Speicherger&auml;ten innerhalb des Netzwerks. LANs k&ouml;nnen sowohl kabelgebunden als auch drahtlos eingerichtet werden, wobei&hellip;\" class=\"encyclopedia\">lan<\/a>k habe, Wenn ich in einem Feld allerdings Vor und Nachname speichere, dann w&uuml;rde mir der <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/daten\/\" target=\"_self\" title='Unter \"Daten\" versteht man Informationen, die auf dem Dateisystem gespeichert sind. Diese Informationen k&ouml;nnen in Form von Dateien oder Verzeichnissen vorliegen. Linux verwendet ein hierarchisches Dateisystem, das sich von dem in Windows unterscheidet. Das Wurzelverzeichnis \"\/\" ist der oberste Verzeichnisbaum, von dem aus alle anderen Verzeichnisse und Dateien abzweigen.' class=\"encyclopedia\">Daten<\/a>satz getrennt werden. Bei 2 Vornamen dann h&auml;tte ich eine doppelte Trennung. <br>Gott sei Dank gibt es die Variable IFS. Wenn ich die Variable jetzt mit &bdquo;nichts&ldquo; belege, dann erfolgt keine Trennung mehr bei B<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/lan\/\" target=\"_self\" title=\"Ein LAN (Local Area Network) ist ein lokales Netzwerk, das in der Regel in einem begrenzten physischen Bereich wie einem Geb&auml;ude oder einem Haus eingerichtet ist. Es erm&ouml;glicht die Kommunikation und den Datenaustausch zwischen verschiedenen Ger&auml;ten wie Computern, Laptops, Druckern und Speicherger&auml;ten innerhalb des Netzwerks. LANs k&ouml;nnen sowohl kabelgebunden als auch drahtlos eingerichtet werden, wobei&hellip;\" class=\"encyclopedia\">lan<\/a>k und Tab.<br><br>Das mache ich durch das Kommando <br>IFS=&ldquo;&ldquo;<br>Wenn ich vorher noch export IFS=&ldquo; schreibe dann gilt das auch f&uuml;r alle weiteren Sub<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\" target=\"_self\" title=\"Bei einer Shell handelt es sich um einen Interpreter, der Eingaben vom Benutzer f&uuml;r das Betriebssystem in die Maschinensprache &uuml;bersetzt und Ausgaben vom Betriebssystem f&uuml;r den Benutzer verst&auml;ndlich am Terminal wieder ausgibt. Bekannte Shells unter Linux w&auml;ren etwa die Bash, Zsh, Fish, die Korn-Shell.\" class=\"encyclopedia\">shell<\/a>s. Beim ausloggen und neuem Anmelden habe ich wieder meine default Werte. Oder schneller geht es, wenn ich ein unset IFS durchf&uuml;hre und die Variable aus meinem Speicher l&ouml;sche. <\/p>\n\n\n\n<p>Um den Unterschied merkbar zu machen, setzen wir IFS=&ldquo;;&ldquo; also den Strichpunkt als Trennzeichen . <br>Wenn wir jetzt den <a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/befehl\/\" target=\"_self\" title=\"Ein Befehl in Linux ist eine Anweisung, die &uuml;ber die Kommandozeile eingegeben wird, um verschiedene Aktionen auszuf&uuml;hren. Mit Linux-Befehlen k&ouml;nnen Sie Ihr System steuern, Dateien verwalten, Programme ausf&uuml;hren und vieles mehr. Hier sind einige wichtige Linux-Befehle: ls: Zeigt den Inhalt des aktuellen Verzeichnisses an. cd: Wechselt das Verzeichnis. mkdir: Erstellt ein neues Verzeichnis. rm: L&ouml;scht&hellip;\" class=\"encyclopedia\">Befehl<\/a>e nochmals ausf&uuml;hren bekommen wir jedes einzelne Feld als eigene Zeile angezeigt. unset IFS setzt alles wieder auf default.  <\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Klasssifizierung<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ungef&auml;hrlich<\/li>\n\n\n\n<li>EDV Kentnisse von Vorteil<\/li>\n\n\n\n<li>Einf&uuml;hrung in das&nbsp;<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/script\/\">Script<\/a>en\/<a href=\"https:\/\/linux-bibel.at\/index.php\/enzyklopaedie\/shell\/\">Shell<\/a><\/li>\n<\/ul>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"21245\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">8    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"21245\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\">2<\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Folge 2<\/p>\n","protected":false},"author":52,"featured_media":21275,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61,4],"tags":[1442,1444,1435],"class_list":["post-21245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-scripts","category-terminal","tag-einfuehrung-in-das-scripten-shell","tag-uedv-kentnisse-von-vorteil","tag-ungefaehrlich"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/21245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=21245"}],"version-history":[{"count":7,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/21245\/revisions"}],"predecessor-version":[{"id":21252,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/21245\/revisions\/21252"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/21275"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=21245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=21245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=21245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}