{"id":31284,"date":"2026-04-29T14:31:00","date_gmt":"2026-04-29T12:31:00","guid":{"rendered":"https:\/\/contabo.com\/blog\/bash-array-leitfaden-indexiert-assoziativ-schleifen\/"},"modified":"2026-06-10T14:48:07","modified_gmt":"2026-06-10T12:48:07","slug":"bash-array-leitfaden","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/de\/bash-array-leitfaden\/","title":{"rendered":"Bash Array: Schleifen, indizierte und assoziative Arrays einfach erkl\u00e4rt"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp\" alt=\"Bash Array: Schleifen, indizierte und assoziative Arrays einfach erkl\u00e4rt (Titelbild)\" class=\"wp-image-30512\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>Bash-Arrays geh\u00f6ren zu den Features, die einsch\u00fcchternd wirken, bis du sie einmal benutzt hast. Danach wirst du st\u00e4ndig darauf zur\u00fcckgreifen, wenn du Skripte schreibst, die Listen von Werten verarbeiten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-was-ist-ein-bash-array\">Was ist ein Bash-Array?<\/h2>\n\n\n\n<p>Ein Bash-Array ist eine Variable, die mehrere Werte speichert. Statt f\u00fcr jeden Eintrag in einer Liste eine eigene Variable zu deklarieren, packst du sie in ein Array und referenzierst sie \u00fcber Index oder Key. Bash ist es egal, ob die Elemente Strings oder Zahlen sind, und es erzwingt keine einheitlichen Typen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-indexierte-vs-assoziative-arrays\">Indexierte vs. assoziative Arrays<\/h3>\n\n\n\n<p>Indexierte Arrays verwenden Integer als Keys, beginnend bei 0. Sie sind der Standard und verhalten sich wie Arrays in den meisten anderen Sprachen. Assoziative Arrays verwenden Strings als Keys und bieten dir Key-Value-Paar-Funktionalit\u00e4t, \u00e4hnlich wie Hash Maps oder Dictionaries. Assoziative Arrays erfordern eine explizite Deklaration mit &#8218;declare -A&#8216;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-wann-du-arrays-in-bash-skripten-verwenden-solltest\">Wann du Arrays in Bash-Skripten verwenden solltest<\/h3>\n\n\n\n<p>Verwende Arrays, wenn du \u00fcber eine Liste von Servern, Dateien, Benutzernamen oder einer beliebigen Sammlung von Elementen iterierst. Ohne Arrays landest du bei mehreren Variablen (server1, server2, server3) und Bedingungslogik, die Code dupliziert. Mit einem Array erledigt eine einzige Schleife die gesamte Liste.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ein-bash-array-deklarieren\">Ein Bash-Array deklarieren<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ein-indexiertes-array-deklarieren\">Ein indexiertes Array deklarieren<\/h3>\n\n\n\n<p>Drei Wege, ein indexiertes Array zu deklarieren:<\/p>\n\n\n\n<p>Alles auf einmal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fruits=(\"apple\" \"banana\" \"cherry\")<\/code><\/pre>\n\n\n\n<p>Einzeln:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fruits&#91;0]=\"apple\" fruits&#91;1]=\"banana\" fruits&#91;2]=\"cherry\"<\/code><\/pre>\n\n\n\n<p>Mit &#8218;declare&#8216;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare -a fruits=(\"apple\" \"banana\" \"cherry\")<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ein-assoziatives-array-deklarieren\">Ein assoziatives Array deklarieren<\/h3>\n\n\n\n<p>Assoziative Arrays erfordern die Direktive &#8218;declare -A&#8216;:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare -A servers servers&#91;web]=\"192.168.1.10\" servers&#91;db]=\"192.168.1.20\" servers&#91;cache]=\"192.168.1.30\"<\/code><\/pre>\n\n\n\n<p>Oder inline:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>declare -A servers=(&#91;web]=\"192.168.1.10\" &#91;db]=\"192.168.1.20\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-variablen-zu-einem-bash-array-hinzufugen\">Variablen zu einem Bash-Array hinzuf\u00fcgen<\/h2>\n\n\n\n<p>Bei indexierten Arrays f\u00fcgst du mit dem Operator &#8218;+=&#8216; an:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fruits+=(\"date\" \"elderberry\")<\/code><\/pre>\n\n\n\n<p>Einem bestimmten Index zuweisen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fruits&#91;5]=\"fig\"<\/code><\/pre>\n\n\n\n<p>Hinweis: Bash-Arrays sind sparse (l\u00fcckenhaft). Wenn du Index 5 zuweist, obwohl du nur 3 Elemente hast, bleiben die Indizes 3 und 4 ungesetzt, nicht leer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-array-elemente-referenzieren-und-ausgeben\">Array-Elemente referenzieren und ausgeben<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-auf-ein-einzelnes-element-zugreifen\">Auf ein einzelnes Element zugreifen<\/h3>\n\n\n\n<p>Verwende die geschweifte-Klammern-Syntax mit dem Index:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${fruits&#91;0]}<\/code><\/pre>\n\n\n\n<p>F\u00fcr assoziative Arrays:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${servers&#91;web]}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-das-gesamte-array-ausgeben\">Das gesamte Array ausgeben<\/h3>\n\n\n\n<p>Das &#8218;@&#8216;-Symbol expandiert alle Elemente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${fruits&#91;@]}<\/code><\/pre>\n\n\n\n<p>Alle Keys anzeigen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${!fruits&#91;@]}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-die-lange-des-arrays-ermitteln\">Die L\u00e4nge des Arrays ermitteln<\/h3>\n\n\n\n<p>Stelle &#8218;#&#8216; voran, um die Bash-Array-L\u00e4nge zu erhalten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${#fruits&#91;@]}<\/code><\/pre>\n\n\n\n<p>F\u00fcr die String-L\u00e4nge eines bestimmten Elements:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo ${#fruits&#91;0]}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-bash-array-elemente-entfernen\">Bash-Array-Elemente entfernen<\/h2>\n\n\n\n<p>Verwende &#8218;unset&#8216;, um ein bestimmtes Element zu entfernen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unset fruits&#91;1]<\/code><\/pre>\n\n\n\n<p>Das entfernt das Element, hinterl\u00e4sst aber die Indexl\u00fccke. Die Array-L\u00e4nge verringert sich um eins. Das gesamte Array entfernen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unset fruits<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-durch-ein-bash-array-iterieren\">Durch ein Bash-Array iterieren<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-schleife-mit-for-in\">Schleife mit For-In<\/h3>\n\n\n\n<p>Der Standardweg, um \u00fcber Array-Werte zu iterieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for fruit in \"${fruits&#91;@]}\"; do &nbsp; &nbsp; echo \"$fruit\" done<\/code><\/pre>\n\n\n\n<p>Die Anf\u00fchrungszeichen um &#8218;${fruits[@]}&#8216; sorgen daf\u00fcr, dass Elemente mit Leerzeichen korrekt behandelt werden. Ohne sie wird ein Element wie &#8218;passion fruit&#8216; in zwei Teile aufgesplittet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-schleife-mit-index\">Schleife mit Index<\/h3>\n\n\n\n<p>Wenn du neben dem Wert auch den Index brauchst:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for i in \"${!fruits&#91;@]}\"; do &nbsp; &nbsp; echo \"Index $i: ${fruits&#91;$i]}\" done<\/code><\/pre>\n\n\n\n<p>Das &#8218;!&#8216;-Pr\u00e4fix expandiert die Indizes des Arrays statt seiner Werte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ein-bash-array-an-eine-funktion-ubergeben\">Ein Bash-Array an eine Funktion \u00fcbergeben<\/h2>\n\n\n\n<p>Bash \u00fcbergibt Arrays nicht nativ an Funktionen. Der Workaround: \u00dcbergib den Array-Namen und nutze indirekte Expansion innerhalb der Funktion:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function process_array { &nbsp; &nbsp; local -n arr=$1 &nbsp; &nbsp; for item in \"${arr&#91;@]}\"; do &nbsp; &nbsp; &nbsp; &nbsp; echo \"Processing: $item\" &nbsp; &nbsp; done }&nbsp; my_list=(\"file1\" \"file2\" \"file3\") process_array my_list<\/code><\/pre>\n\n\n\n<p>Das &#8218;-n&#8216;-Flag bei &#8218;local&#8216; erstellt eine Namensreferenz. Die Funktion arbeitet mit dem Original-Array, ohne es zu kopieren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faq-bash-array\">FAQ: Bash-Array<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1777034061991\"><strong class=\"schema-faq-question\">Wie deklariere ich ein Array in Bash?<\/strong> <p class=\"schema-faq-answer\">F\u00fcr ein indexiertes Array: fruits=(&#8222;apple&#8220; &#8222;banana&#8220; &#8222;cherry&#8220;) F\u00fcr ein assoziatives Array: declare -A servers=([web]=&#8220;192.168.1.10&#8243; [db]=&#8220;192.168.1.20&#8243;)<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777034070802\"><strong class=\"schema-faq-question\">Wie durchlaufe ich ein Bash-Array?<\/strong> <p class=\"schema-faq-answer\">Verwende for-in: for item in &#8222;${array[@]}&#8220;; do echo &#8222;$item&#8220;; done. Setze &#8222;${array[@]}&#8220; immer in Anf\u00fchrungszeichen, um Elemente mit Leerzeichen korrekt zu behandeln.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777034079268\"><strong class=\"schema-faq-question\">Wie ermittle ich die L\u00e4nge eines Bash-Arrays?<\/strong> <p class=\"schema-faq-answer\">Verwende &#8218;${#array[@]}&#8216;. Beispiel: &#8218;count=${#fruits[@]}&#8216;. Das liefert die Anzahl der Elemente im Array.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1777034086608\"><strong class=\"schema-faq-question\">Was ist ein assoziatives Bash-Array?<\/strong> <p class=\"schema-faq-answer\">Ein assoziatives Array verwendet String-Keys statt Integer-Indizes. Deklariere es mit &#8218;declare -A&#8216;: declare -A config=([host]=&#8220;localhost&#8220; [port]=&#8220;3306&#8243;). Greife auf Werte mit &#8218;${config[host]}&#8216; zu.<\/p> <\/div> <\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bash-Arrays geh\u00f6ren zu den Features, die einsch\u00fcchternd wirken, bis du sie einmal benutzt hast. Danach wirst du st\u00e4ndig darauf zur\u00fcckgreifen, wenn du Skripte schreibst, die Listen von Werten verarbeiten. Was ist ein Bash-Array? Ein Bash-Array ist eine Variable, die mehrere Werte speichert. Statt f\u00fcr jeden Eintrag in einer Liste eine eigene Variable zu deklarieren, packst [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":30512,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_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":"","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":"set","ast-page-background-enabled":"default","ast-page-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":"","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-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":"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":""},"mobile":{"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":""}},"footnotes":""},"categories":[1399],"tags":[],"ppma_author":[3402],"class_list":["post-31284","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/05\/blog-head_bash-array-guide-indexed-associative-loops_DE.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/de\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"Bash-Arrays geh\u00f6ren zu den Features, die einsch\u00fcchternd wirken, bis du sie einmal benutzt hast. Danach wirst du st\u00e4ndig darauf zur\u00fcckgreifen, wenn du Skripte schreibst, die Listen von Werten verarbeiten. Was ist ein Bash-Array? Ein Bash-Array ist eine Variable, die mehrere Werte speichert. Statt f\u00fcr jeden Eintrag in einer Liste eine eigene Variable zu deklarieren, packst&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"","first_name":"","job_title":"","description":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/31284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/comments?post=31284"}],"version-history":[{"count":3,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/31284\/revisions"}],"predecessor-version":[{"id":31289,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/posts\/31284\/revisions\/31289"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media\/30512"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/media?parent=31284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/categories?post=31284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/tags?post=31284"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/de\/wp-json\/wp\/v2\/ppma_author?post=31284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}