From 0939c771f32a14239dd8ebd0722747d911aad372 Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Fri, 21 Nov 2025 11:22:28 +0100 Subject: [PATCH] Readme.md aktualisiert. --- README.md | 8 ++++++++ teil24/access.sh | 17 +++++++++++++++ teil24/append.sh | 11 ++++++++++ teil24/associative_array.sh | 10 +++++++++ teil24/create.sh | 10 +++++++++ teil24/declare.sh | 14 +++++++++++++ teil24/iterate.sh | 41 +++++++++++++++++++++++++++++++++++++ teil24/length.sh | 9 ++++++++ teil24/merge.sh | 16 +++++++++++++++ teil24/power.sh | 34 ++++++++++++++++++++++++++++++ teil24/remove.sh | 11 ++++++++++ teil24/slice.sh | 12 +++++++++++ teil24/sort.sh | 22 ++++++++++++++++++++ 13 files changed, 215 insertions(+) create mode 100755 teil24/access.sh create mode 100755 teil24/append.sh create mode 100755 teil24/associative_array.sh create mode 100755 teil24/create.sh create mode 100755 teil24/declare.sh create mode 100755 teil24/iterate.sh create mode 100755 teil24/length.sh create mode 100755 teil24/merge.sh create mode 100755 teil24/power.sh create mode 100755 teil24/remove.sh create mode 100755 teil24/slice.sh create mode 100755 teil24/sort.sh diff --git a/README.md b/README.md index ac45636..5ecc728 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,12 @@ Dateien des bash Tutorioals auf raspithek.de | 14 |exit Codes | | 15 |von der Idee zum Script | | 16 |Funktionen | +| 17 |Piping und Redirection | +| 18 |tee | +| 19 |alias | +| 20 |Shebang | +| 21 |sed | +| 22 |cd | +| 23 |case | +| 24 |Arrays | diff --git a/teil24/access.sh b/teil24/access.sh new file mode 100755 index 0000000..4be343b --- /dev/null +++ b/teil24/access.sh @@ -0,0 +1,17 @@ +#! /usr/bin/bash +# File: access.sh + +# 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/teil24/append.sh b/teil24/append.sh new file mode 100755 index 0000000..121c64a --- /dev/null +++ b/teil24/append.sh @@ -0,0 +1,11 @@ +#! /usr/bin/bash + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "Länge family,vorher: ${#family[@]}" + +family+=(Herb) # Element anfügen. + +echo "family=${family[@]}" +echo "Länge family,nachher: ${#family[@]}" + diff --git a/teil24/associative_array.sh b/teil24/associative_array.sh new file mode 100755 index 0000000..5fa6c4d --- /dev/null +++ b/teil24/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/teil24/create.sh b/teil24/create.sh new file mode 100755 index 0000000..cf97cbb --- /dev/null +++ b/teil24/create.sh @@ -0,0 +1,10 @@ +#! /usr/bin/bash +# File: create.sh + +a1=(0 1 2 3 4) +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "a1=${a1[@]}" +echo "family=${family[@]}" +echo "Länge family: ${#family[@]}" + diff --git a/teil24/declare.sh b/teil24/declare.sh new file mode 100755 index 0000000..f777ff0 --- /dev/null +++ b/teil24/declare.sh @@ -0,0 +1,14 @@ +#! /usr/bin/bash +# File: declare.sh + +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/teil24/iterate.sh b/teil24/iterate.sh new file mode 100755 index 0000000..ba9f118 --- /dev/null +++ b/teil24/iterate.sh @@ -0,0 +1,41 @@ +#! /usr/bin/bash +# File: iterate.sh + +# 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/teil24/length.sh b/teil24/length.sh new file mode 100755 index 0000000..e3610db --- /dev/null +++ b/teil24/length.sh @@ -0,0 +1,9 @@ +#! /usr/bin/bash +# File: length.sh + +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/teil24/merge.sh b/teil24/merge.sh new file mode 100755 index 0000000..68086ee --- /dev/null +++ b/teil24/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/teil24/power.sh b/teil24/power.sh new file mode 100755 index 0000000..ed93147 --- /dev/null +++ b/teil24/power.sh @@ -0,0 +1,34 @@ +#! /usr/bin/bash +# Datei: power.sh + +declare -A power + +# 1. Zeile (Orange Pi Zero 2W), x-Index: 0 + +power[0,0]="Orange Pi Zero 2W" +power[0,1]="1,014" +power[0,2]="1,99" + +# 2. Zeile (Banana Pi BPI-F3) x-Index: 1 +power[1,0]="Banana Pi BPI-F3" +power[1,1]="3,6" +power[1,2]="6,8" + +# 3. Zeile (Raspberry Pi 16GB), x-Index: 2 +power[2,0]="Raspberry Pi 16GB" +power[2,1]="2,25" +power[2,2]="8,0" + +# 4. Zeile (Radxa Zero), x-Index: 3 +power[3,0]="Radxa Zero" +power[3,1]="-" +power[3,2]="-" +# 2. Spalte: Stromaufnahme Leerlauf + +printf "%-25s %-10s %-10s\n" "SBC" "idle" "load" + +for ((x=0; x<4; x++)) +do + printf "%-20s %-10s %-10s\n" "${power[${x},0]}" "${power[${x},1]}W" "${power[${x},2]}W" +done + diff --git a/teil24/remove.sh b/teil24/remove.sh new file mode 100755 index 0000000..86de9ee --- /dev/null +++ b/teil24/remove.sh @@ -0,0 +1,11 @@ +#! /usr/bin/bash + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie") + +echo "Länge family,vorher: ${#family[@]}" + +unset family[2] + +echo "family=${family[@]}" +echo "Länge family,nachher: ${#family[@]}" + diff --git a/teil24/slice.sh b/teil24/slice.sh new file mode 100755 index 0000000..01989e5 --- /dev/null +++ b/teil24/slice.sh @@ -0,0 +1,12 @@ +#! /usr/bin/bash +# Datei slice.sh + +family=("Marge" "Homer" "Bart" "Lisa" "Maggie" "Abe" "Herb" "Patty" "Selma") + +echo "family=${family[@]}" +parents=${family[@]:0:2} +kids=${family[@]:2:2} + +echo "Eltern: ${parents[@]}" +echo "Kinder: ${kids[@]}" + diff --git a/teil24/sort.sh b/teil24/sort.sh new file mode 100755 index 0000000..35ce4b0 --- /dev/null +++ b/teil24/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[@]}"