Bash Snippets
Hier werden nützliche Befehle und Code Snippets gesammelt.
Flags und Argumente in Bash Skripten
Ein Snippet um Flags wie -h oder --help und Argumente abzufragen. Alle Argumente mit einem Dash werden verarbeitet und aus dem Argumenten entfernt. Übrig bleiben alle anderen Argumente, wie z.B. Dateinamen, in der richtigen Reihenfolge.
# handle dashed arguments and remove them from $@
POSITIONAL_ARGS=()
while [[ $# -gt 0 ]]; do
case $1 in
-h|--help)
usage
exit 0;;
-o|--output)
if [ -z "$2" ]; then
echo "Error: no output filename given" >&2 ; exit 2
fi
output_file="$2"
shift;shift;; # shift once for the name and once for the value
-*)
echo "Unknown option $1"; exit 1;;
*)
POSITIONAL_ARGS+=("$1") # save positional arg
shift ;;
esac
done
set -- "${POSITIONAL_ARGS[@]}" # restore positional arguments
Parameter Expansion
Die verschiedenen Möglichkeiten Variablen einzusetzen, zu verändern oder zu ersetzen. Mehr Infos im Bash Manual .
${parameter:−word} # return parameter or word if parameter is null
${parameter:=word} # set parameter to word of parameter is null (does not work with $1)
${parameter:?word} # write word to stderr if parameter is null (exits if noninteractive)
${parameter:offset:length} # return substring
${parameter#word} # remove shortest match from beginning (remove prefix)
${parameter##word} # remove longest match from beginning (remove all slashes)
${parameter%word} # remove shortest match from end (remove file extension)
${parameter%%word} # remove longest match from end (remove everything after first occurrence)
${parameter/pattern/string} # replace first pattern with string
${parameter//pattern/string} # replace all patterns with string
${parameter/#pattern/string} # replace pattern at beginning
${parameter/%pattern/string} # replace pattern at end
${parameter/pattern} # remove pattern