38 Commits
Author SHA1 Message Date
olli 815a66d808 Verzeichnis umbenannt. 2025-09-15 10:27:37 +02:00
olli f7336ae3e6 Merge branch 'develop' 2025-09-15 10:24:16 +02:00
olli e2346fa32f Aufgeräumt. 2025-09-15 09:50:35 +02:00
olli ff7035cd22 power.sh für mehrdimensionale Arrays. 2025-09-15 09:37:35 +02:00
olli 4bd2566b04 declare ausgelagert. 2025-09-08 09:33:48 +02:00
olli 0d67903acf array Demos 2025-09-07 14:15:56 +02:00
olli 96f5040dfe append.sh und remove.sh 2025-09-07 11:35:12 +02:00
olli a48e6bc452 Migrationsscript für /boot/firmware erster Aufschlag. 2025-07-09 17:54:50 +02:00
olli e64461d64c family_case.sh 2025-06-30 12:56:18 +02:00
olli dde357c695 Typo 2025-06-19 06:49:21 +02:00
olli c750cb4c69 Klammernotation beim Parameter. 2025-06-19 06:48:16 +02:00
olli 1af089d106 Verzeichnisse in die korrekte Reihenfolge umbenannt. 2025-06-19 06:24:38 +02:00
olli dcaafa8604 Umbenennung. 2025-06-19 05:59:08 +02:00
raspithek c3f9740332 „teil24/familyif.sh“ hinzufügen
Version mit if
2025-06-17 05:16:31 +00:00
olli 81a7c96f7f teil22 2025-06-16 13:02:22 +02:00
olli 89557b8e36 Revert "„teil23/parseargs.sh“ ändern"
This reverts commit fb7c410e8a.
2025-05-17 12:09:46 +02:00
raspithek 5d830cbae4 Merge pull request '„teil23/parseargs.sh“ ändern' (#1) from develop into master
Reviewed-on: #1
2025-05-13 12:06:27 +00:00
raspithek fb7c410e8a „teil23/parseargs.sh“ ändern 2025-05-13 11:58:31 +00:00
olli e4190bae83 parseargs.sh 2025-05-12 07:13:05 +02:00
olli 6545189eb0 teil21 2025-03-01 11:07:58 +01:00
olli 4e375b5d08 Schript zu Teil 20. 2025-01-28 09:54:00 +01:00
Olli Graf 2be3db4187 piping teil17 2024-11-09 10:14:32 +01:00
Olli Graf 9dc5a2550c piping 2024-11-09 10:13:32 +01:00
Olli Graf 6f82b9eda4 Beispieltext.
Quelle: https://de.wikibooks.org/wiki/De_Bello_Gallico:_Liber_I_-_Kapitel_I
2024-10-28 07:43:38 +01:00
Olli Graf 28dada6046 Anpassungen. 2024-10-08 12:45:03 +02:00
olli deeb9080fe teil17 grep Testdateien. 2024-10-08 09:49:30 +02:00
Olli Graf 578119d663 scope 2024-09-22 15:15:28 +02:00
Olli Graf 23e7a9090a Scripts zu Rückgabewerte. 2024-09-22 12:16:16 +02:00
olli 48da83fdd3 Script ausführbar gemacht. 2024-09-20 12:52:18 +02:00
olli 82620782b3 Hilfsdatei entfernt 2024-09-20 07:05:47 +02:00
raspithek b1065a657e Dateien hochladen nach „teil16“
Scripts zu Funktionen
2024-09-20 05:05:00 +00:00
olli 68a8069739 Readme aktualisiert. 2024-09-20 07:02:27 +02:00
Olli Graf 36837548d2 teil14 2024-09-08 11:33:42 +02:00
Olli Graf 407d7ef5c0 sdcardtester als Scriptbeispiel. 2024-09-08 11:32:48 +02:00
Olli Graf f979f9952d teil11 und teil13 2024-08-18 16:44:07 +02:00
olli 197da26fa9 noloop.sh 2024-07-29 08:02:16 +02:00
olli ae9e94b262 teil02 teil11 und teil12 2024-07-29 08:01:42 +02:00
Olli Graf b1871443df erste Scripts für Teil 11 (if) 2024-07-26 12:06:31 +02:00
52 changed files with 700 additions and 1 deletions
+21 -1
View File
@@ -1,3 +1,23 @@
# bash-tut
Dateien des bash Tutorioals auf raspithek.de
Dateien des bash Tutorioals auf raspithek.de
| Kapitel| Beschreibung |
|--------|------------------------|
1 |Einführung |
| 2 |Prompt |
| 3 |key bindings |
| 4 |Startvorgang |
| 5 |Environmentvariablen |
| 6 |builtins |
| 7 |Dateien |
| 8 |nano |
| 9 |bash Scripting |
| 10 |Variablen |
| 11 |Verzweigungen |
| 12 |Schleifen |
| 13 |Parameter |
| 14 |exit Codes |
| 15 |von der Idee zum Script |
| 16 |Funktionen |
+2
View File
@@ -0,0 +1,2 @@
ll
+3
View File
@@ -0,0 +1,3 @@
shopt -s expand_aliases # Aktiviert Aliase
alias ll='ls -la'
ll
+66
View File
@@ -0,0 +1,66 @@
#!/usr/bin/bash
# Output colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Logging-Funktion
log() {
echo -e "${GREEN}[INFO]${NC} $1"
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Check for root privileges
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
# Create /boot/firmware dir if it doesn't exist
if [ ! -d /boot/firmware ]; then mkdir -p /boot/firmware; fi
# Enable extended globbing for pattern matching
shopt -s extglob
# Copy all files from /boot to /boot/firmware and remove the originals
log "Moving files to /boot/firmware..."
rsync -av --remove-source-files /boot/ /boot/firmware/
# Update the mount point for /boot in fstab to /boot/firmware
log "Updating fstab..."
cp -a /etc/fstab /etc/fstab.bak # create backup
sed -i 's|^\([^#].*\)[[:space:]]/boot[[:space:]]|\1 /boot/firmware |' /etc/fstab
# Sync cache and reboot the system to apply changes
sync
# prompt for reboot
echo ""
while true; do
read -p "Möchtest du das System jetzt neustarten, um die Änderungen zu testen? (J/N): " choice
case $choice in
[Jj]* )
warn "System will be rebooted in 3 seconds"
sleep 2
reboot
;;
[Nn]* )
log "Neustart übersprungen."
log "Bitte starte das System manuell neu, um die Änderungen zu testen."
break
;;
* )
warn "Bitte antworte mit J (Ja) oder N (Nein)."
;;
esac
done
exit 0
+8
View File
@@ -0,0 +1,8 @@
Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam qui ipsorum lingua Celtae, nostra Galli appellantur.
Hi omnes lingua, institutis, legibus inter se differunt.
Gallos ab Aquitanis Garunna flumen, a Belgis Matrona et Sequana dividit.
Horum omnium fortissimi sunt Belgae, propterea quod a cultu atque humanitate provinciae longissime absunt, minimeque ad eos mercatores saepe commeant atque ea quae ad effeminandos animos pertinent, important, proximique sunt Germanis, qui trans Rhenum incolunt, quibuscum continenter bellum gerunt.
Qua de causa Helvetii quoque reliquos Gallos virtute praecedunt, quod fere cotidianis proeliis cum Germanis contendunt, cum aut suis finibus eos prohibent aut ipsi in eorum finibus bellum gerunt.
Eorum una pars, quam Gallos obtinere dictum est, initium capit a flumine Rhodano, continetur Garumna flumine, Oceano, finibus Belgarum, attingit etiam ab Sequanis et Helvetiis flumen Rhenum, vergit ad septentriones.
Belgae ab extremis Galliae finibus oriuntur, pertinent ad inferiorem partem fluminis Rheni, spectant in septentrionem et orientem solem.
Aquitania a Garunna flumine ad Pyrenaeos montes et eam partem Oceani quae est ad Hispaniam pertinet; spectat inter occasum solis et septentriones.
View File
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/bash
export ANSI_FG_BLACK="\e[0;30m"
export ANSI_FG_RED="\e[0;31m"
export ANSI_FG_GREEN="\e[0;32m"
export ANSI_FG_YELLOW="\e[0;33m"
export ANSI_FG_BLUE="\e[0;34m"
export ANSI_FG_PURPLE="\e[0;35m"
export ANSI_FG_CYAN="\e[0;36m"
export ANSI_FG_WHITE="\e[0;37m"
export ANSI_NORMAL="\e[0m"
export ANSI_BG_BLACK="\e[40m"
export ANSI_BG_RED="\e[41m"
export ANSI_BG_GREEN="\e[42m"
export ANSI_BG_BROWN="\e[43m"
export ANSI_BG_BLUE="\e[44m"
export ANSI_BG_PURPLE="\e[45m"
export ANSI_BG_TURQUOISE="\e[46m"
export ANSI_BG_GREY="\e[47m"
export ANSI_STYLE_BOLD="\e[1;37m"
export ANSI_STYLE_UNDERLINE="\e[4;37m"
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/bash
. ansi-consts.sh
echo -e "${ANSI_STYLE_UNDERLINE}Liste der ANSI Farbcodes Schriftfarbe${ANSI_NORMAL}"
echo -e "30:${ANSI_FG_BLACK}Schwarz${ANSI_NORMAL}"
echo -e "31:${ANSI_FG_RED}Rot${ANSI_NORMAL}"
echo -e "32:${ANSI_FG_GREEN}Grün${ANSI_NORMAL}"
echo -e "33:${ANSI_FG_YELLOW}Gelb${ANSI_NORMAL}"
echo -e "34:${ANSI_FG_BLUE}Blau${ANSI_NORMAL}"
echo -e "35:${ANSI_FG_PURPLE}Lila${ANSI_NORMAL}"
echo -e "36:${ANSI_FG_CYAN}hell Cyan${ANSI_NoRMAL}"
echo -e "37:${ANSI_FG_WHITE}Weiß${ANSI_NORMAL}"
echo -e "${ANSI_STYLE_UNDERLINE}Liste der ANSI Farbcodes Schriftfarbe${ANSI_NORMAL}"
echo -e "\e[40m schwarz \e[0m"
echo -e "\e[41m rot \e[0m"
echo -e "\e[42m grün\e[0m"
echo -e "\e[43m hellbraun\e[0m"
echo -e "\e[44m blau\e[0m"
echo -e "\e[45m lila\e[0m"
echo -e "\e[46m türkis\e[0m"
echo -e "\e[47m hellgrau\e[0m"
echo -e "${ANSI_STYLE_UNDERLINE}Liste der ANSI Codes Schrifteffekt${ANSI_NORMAL}"
echo -e "\e[1;37mFettdruck${ANSI_NORMAL}"
echo -e "\e[4;37mUnterstrichen${ANSI_NORMAL}"
+19
View File
@@ -0,0 +1,19 @@
#and.sh
counter='1'
test=1
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
if [ ${counter} -eq 3 ] && [ ${test} -eq 2 ]; then
echo "0-drei"
fi
if [ ${counter} -eq 3 ] && [ ${test} -eq 1 ]; then
echo "1-drei"
fi
let counter=counter+1
echo "${counter}"
+16
View File
@@ -0,0 +1,16 @@
#else.sh
counter='1'
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
if [ ${counter} -ne 3 ]; then
echo "${counter}"
else
echo "drei"
fi
let counter=counter+1
echo "${counter}"
+10
View File
@@ -0,0 +1,10 @@
# ifeq.sh
a=10
if [ ${a} = 10 ]; then
echo "a ist 10"
else
echo "a ist ungleich 10"
fi
+11
View File
@@ -0,0 +1,11 @@
#linear.sh
counter='1'
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
echo "${counter}"
+19
View File
@@ -0,0 +1,19 @@
#not.sh
counter='1'
test=1
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
if ! [ ${counter} -eq 3 ] || [ ${test} -eq 2 ]; then
echo "0-drei"
fi
if [ ${counter} -eq 3 ] || [ ${test} -eq 1 ]; then
echo "1-drei"
fi
let counter=counter+1
echo "${counter}"
+19
View File
@@ -0,0 +1,19 @@
#or.sh
counter='1'
test=1
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
if [ ${counter} -eq 3 ] || [ ${test} -eq 2 ]; then
echo "0-drei"
fi
if [ ${counter} -eq 3 ] || [ ${test} -eq 1 ]; then
echo "1-drei"
fi
let counter=counter+1
echo "${counter}"
+14
View File
@@ -0,0 +1,14 @@
#skip3rd.sh
counter='1'
echo "${counter}"
let counter=counter+1
echo "${counter}"
let counter=counter+1
if [ ${counter} -ne 3 ]; then
echo "${counter}"
fi
let counter=counter+1
echo "${counter}"
+11
View File
@@ -0,0 +1,11 @@
#strings.sh
string1='Skinner'
if [[ ${string1} == 'Skinner' ]]; then
echo "Es ist Skinner"
else
echo " Es ist nicht Skinner"
fi
+14
View File
@@ -0,0 +1,14 @@
#forloop.sh
#Ausgabe der ungeraden Zahlen bis 10
for i in 1 3 5 7 9; do
echo "i=${i}"
done
#Ausgabe aller Dateien in /etc
for d in /etc/*; do
echo "${d}"
done
+16
View File
@@ -0,0 +1,16 @@
# noloop.sh
echo "1"
echo "und"
echo "1"
echo "und"
echo "1"
echo "und"
echo "1"
echo "und"
echo "1"
echo "und"
echo "aus"
+12
View File
@@ -0,0 +1,12 @@
# untilloop.sh
count=1
until [ ${count} -eq 5 ]; do
echo "1"
echo "und"
count=$((${count} + 1))
done
echo "aus"
+12
View File
@@ -0,0 +1,12 @@
# whileloop.sh
count=1
while [ ${count} -le 5 ]; do
echo "1"
echo "und"
count=$((${count} + 1))
done
echo "aus"
+5
View File
@@ -0,0 +1,5 @@
#! /usr/bin/bash
#allparams.sh
echo "${@}"
+10
View File
@@ -0,0 +1,10 @@
#! /usr/bin/bash
#paramloop.sh
let count=0
for p in "${@}"; do
echo "Param ${count}: ${p}"
let count=count+1
done
+14
View File
@@ -0,0 +1,14 @@
#! /usr/bin/bash
# testparam.sh
echo " Param #0: ${0}"
echo " Param #1: ${1}"
echo " Param #2: ${2}"
echo " Param #3: ${3}"
echo " Param #4: ${4}"
echo " Param #5: ${5}"
echo " Param #6: ${6}"
echo " Param #7: ${7}"
echo " Param #8: ${8}"
echo " Param #9: ${9}"
echo " Param #10: ${10}"
+10
View File
@@ -0,0 +1,10 @@
#! /usr/bin/bash
./sub.sh ${1}
if [ ${?} -eq 0 ]; then
echo "sub.sh erfolgreich"
else
echo "sub.sh fehlgeschlagen"
fi
+4
View File
@@ -0,0 +1,4 @@
# /usr/bin/bash
echo "Beispiel für exit Code"
exit 2
Executable
+10
View File
@@ -0,0 +1,10 @@
# !/usr/bin/bash
if [ "${1}" == "fail" ]; then
echo " ${0}: failing"
exit 1
fi
exit 0
+59
View File
@@ -0,0 +1,59 @@
#! /usr/bin/bash
MOUNTPOINT='/mnt/speedtest'
# number of threads used during testing
nproc=4
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit 1
fi
if [ "${1}" ]; then
DEVICE=${1}
PARTITION=${DEVICE}1
echo "using device ${DEVICE}"
else
echo "using default device ${DEVICE}"
fi
# check if sd card is inserted
if [ -e ${DEVICE} ]; then
echo "card inserted"
else
echo "no sd card found"
exit 2
fi
echo "deleting partion #1"
sfdisk --delete -w ${DEVICE} 1 && sync
echo "creating new ext4 partition"
echo ",," |sfdisk ${DEVICE} && sync
echo "creating ext4 filesystem on ${PARTITION}"
echo "y" |mkfs.ext4 ${PARTITION}
#check if mount point is available, create otherwise
if [ ! -d "${MOUNTPOINT}" ]; then mkdir "${MOUNTPOINT}"; fi
mount -t ext4 "${PARTITION}" "${MOUNTPOINT}"
cd "${MOUNTPOINT}"
echo "preparing tests"
sysbench fileio --file-total-size=8G prepare > /dev/null
# Test with 16K block size, random read/write
echo "run test with 16K block size"
sysbench fileio --file-block-size=16K --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run
# Test with 1M block size, random read/write
echo "run test with 1M block size"
sysbench fileio --file-block-size=1M --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run
# cleanup the test files
echo "cleaning up test files"
sysbench fileio --file-total-size=8G cleanup
cd - >/dev/null
umount ${PARTITION}
+14
View File
@@ -0,0 +1,14 @@
#! /usr/bin/bash
# File: loop-func.sh
function hallo() {
echo "Hallo 1"
echo "-------"
}
count=1
while [ ${count} -le 4 ]; do
hallo
count=$((${count} + 1))
done
+14
View File
@@ -0,0 +1,14 @@
#! /usr/bin/bash
# File: mult-echo.sh
echo "Hallo 1"
echo "-------"
echo "Hallo 1"
echo "-------"
echo "Hallo 1"
echo "-------"
echo "Hallo 1"
echo "-------"
+13
View File
@@ -0,0 +1,13 @@
#! /usr/bin/bash
# File: param-func.sh
function hallo() {
echo "Hallo ${1}"
}
count=1
while [ ${count} -le 4 ]; do
hallo "${count}"
count=$((${count} + 1))
done
+14
View File
@@ -0,0 +1,14 @@
#! /usr/bin/bash
# File: return-value-echo.sh
function square() {
echo $(( ${1} * ${1} ))
}
square "2"
square "4"
square "3"
square "32"
+20
View File
@@ -0,0 +1,20 @@
#! /usr/bin/bash
# File: return-value-echo2.sh
function square() {
echo $(( ${1} * ${1} ))
}
s2=$(square "2")
s4=$(square "4")
s3=$(square "3")
s32=$(square "32")
echo "Das Quadrat von 2 ist ${s2}"
echo "Das Quadrat von 4 ist ${s4}"
echo "Das Quadrat von 3 ist ${s3}"
echo "Das Quadrat von 32 ist ${s32}"
+18
View File
@@ -0,0 +1,18 @@
#! /usr/bin/bash
# File: return-value-return.sh
function square() {
return $(( ${1} * ${1} ))
}
square "2"
echo "Quadrat von 2 ist ${?}"
square "4"
echo "Quadrat von 4 ist ${?}"
square "3"
echo "Quadrat von 3 ist ${?}"
square "32"
echo "Quadrat von 32 ist ${?}"
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/bash
# File: scope/scope.sh
# Globale Variable
global_var="Ich bin global"
# Funktion mit lokaler Variable
funktion_mit_lokaler_var() {
local local_var="Ich bin lokal"
var_ohne_local="Ich bin lokal ohne local"
global_var="Ich wurde in der Funktion verändert"
echo "Innerhalb der Funktion:"
echo "Globale Variable: ${global_var}"
echo "Lokale Variable: ${local_var}"
}
# Hauptskript
echo "Vor Funktionsaufruf:"
echo "Globale Variable: ${global_var}"
# Funktionsaufruf
funktion_mit_lokaler_var
# Nach Funktionsaufruf
echo "Nach Funktionsaufruf:"
echo "Globale Variable: ${global_var}"
echo "var_ohne_local: ${var_ohne_local}"
# Versuch, auf die lokale Variable zuzugreifen (dies wird fehlschlagen)
echo "Versuch, auf die lokale Variable außerhalb der Funktion zuzugreifen:"
echo "Lokale Variable: ${local_var}"
+13
View File
@@ -0,0 +1,13 @@
#! /usr/bin/bash
# File: simple-func.sh
function hallo() {
echo "Hallo 1"
echo "-------"
}
hallo
hallo
hallo
hallo
+1
View File
@@ -0,0 +1 @@
backup.txt
+8
View File
@@ -0,0 +1,8 @@
Simpson, Marge
Simpson, Homer
simpson, Abe
Simpson, Bart
Simpson, Lisa
Simpson, Maggie
Powell, Herb
+24
View File
@@ -0,0 +1,24 @@
--- Lehrer -----
Skinner, Seymour
Krababel, Edna
Hoover, Elisabeth
Largo, Dewey
--- Schüler ----
2: Powell, Janey
2: Wiggum, Ralph
2: Simpson, Lisa
2: Shorter, Becky
2: Taylor, Alison
4: Kyle
4: Clark, Lewis
4: van Houten, Milhouse
4: Simpson, Bart
4: Muntz, Nelson
4: Borton, Wendell
4: Prince, Martin
6: Starbeam, Dolph
6: Jones, Jimbo
6: Zzyswincz, Kearney
?: Zörker, Uter
+6
View File
@@ -0,0 +1,6 @@
Burns, Monty
Smithers, Waylon
Carlson, Carl
Leonard, Lenny
Simpson, Homer
+7
View File
@@ -0,0 +1,7 @@
#! ./mybang
def main():
print("Hallo aus teil20!")
if __name__ == "__main__":
main()
+4
View File
@@ -0,0 +1,4 @@
#! /usr/bin/node
// Datei: hello.js
console.log('Hallo von JavaScript')
+9
View File
@@ -0,0 +1,9 @@
#! ./mybang
# Datei: hello.py
def main():
print("Hallo von Python")
if __name__ == "__main__":
main()
Executable
+14
View File
@@ -0,0 +1,14 @@
#! /usr/bin/bash
# Datei: mybang
echo "0:${0}"
echo "1:${1}"
echo "2:${2}"
if [[ "${USER}" == "pi" ]]; then
echo "User pi darf python ausführen."
python ${1}
else
echo "Du darfst kein Python ausführen."
fi
+1
View File
@@ -0,0 +1 @@
*.bak
+2
View File
@@ -0,0 +1,2 @@
s/Simpson/Thompson/
s/Flanders/Flunders/
+1
View File
@@ -0,0 +1 @@
echo "Hello" | sed 's/Hello/Bye/'
+16
View File
@@ -0,0 +1,16 @@
Simpson, Marge
Simpson, Homer
Simpson, Maggie
Simpson, Lisa
Simpson, Bart
#FLANDERS-START
Flanders, Maude
Flanders, Ned
Flanders, Rod
Flanders, Todd
#FLANDERS-END
Wiggum, Sarah
Wiggum, Clancy
Wiggum, Ralph
View File
+1
View File
@@ -0,0 +1 @@
*.bak
+19
View File
@@ -0,0 +1,19 @@
#! /usr/bin/bash
#Datei: teil23/family_case.sh
case ${1} in
'Homer'|'Marge'|'Bart'|'Lisa') # Familie Simpson
echo "Familie Simpson"
;;
'Ned'|'Maude'|'Todd'|'Rod') # Familie Flanders
echo "Familie Flanders"
;;
'Clancy'|'Sarah'|'Ralph') # Familie Wiggum
echo "Familie Wiggum"
;;
*) # default
echo "unbekannte Familie"
;;
esac
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/bash
# Datei teil23/family_if.sh
if [[ "${1}" == "Homer" || "${1}" == "Marge" || "${1}" == "Bart" || "${1}" == "Lisa" ]]; then
echo "Familie Simpson"
elif [[ "${1}" == "Ned" || "${1}" == "Maude" || "${1}" == "Todd" || "${1}" == "Rod" ]]; then
echo "Familie Flanders"
elif [[ "${1}" == "Clancy" || "${1}" == "Sarah" || "${1}" == "Ralph" ]]; then
echo "Familie Wiggum"
else
echo "unbekannte Familie"
fi
+2
View File
@@ -0,0 +1,2 @@
*.bak