Skripten mit Bash

my_var=$(some_function)
 
if [[ $? != 0 ]] ; then
    echo "some_function failed"
    exit 1
fi
 
export my_var
rm -rf /${delete_this:?Variable nicht gesetzt!}

oder global für alle Variablen

set -o nounset
rm -rf /${delete_this}

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

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