From 0d67903acf8bceda3102be049aee34d88d562908 Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Sun, 7 Sep 2025 14:15:56 +0200 Subject: [PATCH] array Demos --- arrays/access.sh | 16 +++++++++++++++ arrays/associative_array.sh | 10 ++++++++++ arrays/define.sh | 20 +++++++++++++++++++ arrays/iterate.sh | 39 +++++++++++++++++++++++++++++++++++++ arrays/length.sh | 8 ++++++++ arrays/merge.sh | 16 +++++++++++++++ arrays/slice.sh | 6 ++++++ arrays/sort.sh | 22 +++++++++++++++++++++ 8 files changed, 137 insertions(+) create mode 100755 arrays/access.sh create mode 100755 arrays/associative_array.sh create mode 100755 arrays/define.sh create mode 100755 arrays/iterate.sh create mode 100755 arrays/length.sh create mode 100755 arrays/merge.sh create mode 100755 arrays/slice.sh create mode 100755 arrays/sort.sh diff --git a/arrays/access.sh b/arrays/access.sh new file mode 100755 index 0000000..098c84f --- /dev/null +++ b/arrays/access.sh @@ -0,0 +1,16 @@ +#! /usr/bin/bash + +# Array of numbers +fib=(0 1 2 3 5 8) + +#Array of Strings +family=("Marge","Homer","Bart","Lisa","Maggie") + +# outputs only element 0 +echo "fib=${fib}" +# output the whole array +echo "fib=${fib[@]}" + +#output element by index +echo "fib[4]=${fib[4]}" + diff --git a/arrays/associative_array.sh b/arrays/associative_array.sh new file mode 100755 index 0000000..5fa6c4d --- /dev/null +++ b/arrays/associative_array.sh @@ -0,0 +1,10 @@ +#! /usr/bin/bash + +declare -A family +family=([father]="Homer" [mother]="Marge" [son]="Bart" [daughter]="Lisa" [baby]="Maggie") + + +echo "Iterating through associative array using while loop:" +while IFS= read -r key && IFS= read -r value <&3; do + echo "Key: $key, Value: $value" +done < <(printf '%s\n' "${!family[@]}") 3< <(printf '%s\n' "${family[@]}") diff --git a/arrays/define.sh b/arrays/define.sh new file mode 100755 index 0000000..cce0f07 --- /dev/null +++ b/arrays/define.sh @@ -0,0 +1,20 @@ +#! /usr/bin/bash + +a1=(0 1 2 3 4) +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "a1=${a1[@]}" +echo "family=${family[@]}" +echo "Länge family: ${#family[@]}" + +# Define an Array with declare -a +declare -a sbc +sbc[0]="Raspberry Pi" +echo "Länge sbc: ${#sbc[@]}" +echo "sbc=${sbc[@]}" +sbc[1]="Orange Pi" +echo "Länge sbc: ${#sbc[@]}" +echo "sbc=${sbc[@]}" +sbc[2]="Banana Pi" +echo "Länge sbc: ${#sbc[@]}" +echo "sbc=${sbc[@]}" diff --git a/arrays/iterate.sh b/arrays/iterate.sh new file mode 100755 index 0000000..82ea38b --- /dev/null +++ b/arrays/iterate.sh @@ -0,0 +1,39 @@ +#! /usr/bin/bash + +# Array of numbers +fib=(0 1 2 3 5 8) + +#Array of Strings +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +# Einfache for Schleife + +for name in "${family[@]}" + do + echo "for: name=${name}" + done +echo "---" +# C-ähnliche Schleife im Index +len=${#family[@]} + +for ((i=0;i < len; i++));do + echo "for-i: name=${family[i]},i= ${i}" +done +echo "---" + +# while Schleife +counter=0 + +while [ ${counter} -lt ${len} ]; do + echo "while: name=${family[counter]},counter=${counter}" + ((counter++)) +done +echo "---" + +# until Schleife +counter=0 + +until [ $counter -ge $len ]; do + echo "until: ${family[counter]}" + ((counter++)) +done diff --git a/arrays/length.sh b/arrays/length.sh new file mode 100755 index 0000000..491df5b --- /dev/null +++ b/arrays/length.sh @@ -0,0 +1,8 @@ +#! /usr/bin/bash + +a1=(0 1 2 3 4 5) +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "Größe family: ${#family[@]}" +echo "Größe a1: ${#a1[@]}" + diff --git a/arrays/merge.sh b/arrays/merge.sh new file mode 100755 index 0000000..68086ee --- /dev/null +++ b/arrays/merge.sh @@ -0,0 +1,16 @@ +#! /usr/bin/bash + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") +neighbours=("Ned" "Maude" "Todd" "Rod") + + +echo "family=${family[@]}" +echo "Länge family: ${#family[@]}" + +echo "neighbours=${neighbours[@]}" +echo "Länge neighbours: ${#neigbours[@]}" + +merged=(${family[@]} ${neighbours[@]}) + +echo "merged=${merged[@]}" +echo "Länge merged: ${#merged[@]}" diff --git a/arrays/slice.sh b/arrays/slice.sh new file mode 100755 index 0000000..7b71bdc --- /dev/null +++ b/arrays/slice.sh @@ -0,0 +1,6 @@ +#! /usr/bin/bash + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "Kinder: ${family[@]:2:4}" +echo "Eltern: ${family[@]:0:2}" diff --git a/arrays/sort.sh b/arrays/sort.sh new file mode 100755 index 0000000..35ce4b0 --- /dev/null +++ b/arrays/sort.sh @@ -0,0 +1,22 @@ +#! /usr/bin/bash + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") +neighbours=("Ned" "Maude" "Todd" "Rod") + + +echo "family=${family[@]}" +echo "Länge family: ${#family[@]}" + +echo "neighbours=${neighbours[@]}" +echo "Länge neighbours: ${#neigbours[@]}" + +merged=(${family[@]} ${neighbours[@]}) + +echo "merged=${merged[@]}" +echo "Länge merged: ${#merged[@]}" + +# sorting the merged array + +sorted=($(printf "%s\n" "${merged[@]}" | sort -n)) + +echo "sorted=${sorted[@]}"