Skripten mit Bash
Rückgabewert überprüfen
my_var=$(some_function) if [[ $? != 0 ]] ; then echo "some_function failed" exit 1 fi export my_var
Variablenprüfung
rm -rf /${delete_this:?Variable nicht gesetzt!}
oder global für alle Variablen
set -o nounset rm -rf /${delete_this}
Rückgabewerte von Pipes
FALSCH
grep example data.txt | sort if [[ $? != 0 ]] ; then echo "grep fehlgeschlagen" exit 1 fi
RICHTIG
grep example data.txt | sort if [[ ${PIPESTATUS[@]} != "0 0" ]] ; then echo "Fehler in der Pipe" exit 1 fi
bzw.
grep example data.txt | sort if [[ ${PIPESTATUS[@]} != "0 0" ]] ; then echo "Fehler in der Pipe" exit 1 fi
String per Bash splitten
Mit einigen einfachen hilfmitteln und kleinenkryptischen Abkürzungen kann man innerhalb der Bash ganz einfach Strings splitten und darauf zugreifen.
“##*/” – diese Anweisung liefert den String auf der rechten Seite nachdem letzten Slahs
“#*/” - diese Anweisung liefert den String auf der rechten Seite nachdem ersten Slash
“%/*” – diese Anweisung liefert den String auf der linken Seite
“/*<nowiki>” - diese Anweisung liefert den String auf der linken Seite
Bsp.:
#!/usr/bin/bash text=/foo/bar/foobar.txt filename=${text##*/} echo $filename filename_part=${filename%.*} echo $filename_part name=com.java.security.hash part1=${name%.*} part2=${name%%.*} echo $part1 echo $part2