Compare commits

...

2 Commits

  1. 35
      teil23/parseargs.sh

35
teil23/parseargs.sh

@ -1,17 +1,20 @@
#!/bin/bash
display_help() {
echo "Usage: ${0} [options]"
echo "Options:"
echo " -h, --help Show this help message"
echo " -v, --verbose Enable verbose mode"
echo " -f, --file <file> Specify a file"
echo " -n, --number <num> Specify a number (default: 42)"
}
# Universelle Parameterparser-Funktion
parse_args() {
POSITIONAL=()
while [[ $# -gt 0 ]]; do
case "$1" in
case "${1}" in
-h|--help)
echo "Usage: $0 [options]"
echo "Options:"
echo " -h, --help Show this help message"
echo " -v, --verbose Enable verbose mode"
echo " -f, --file <file> Specify a file"
echo " -n, --number <num> Specify a number (default: 42)"
display_help
exit 0
;;
-v|--verbose)
@ -19,7 +22,7 @@ parse_args() {
shift
;;
-f|--file)
if [[ -z "$2" || "$2" == -* ]]; then
if [[ -z "${2}" || "${2}" == -* ]]; then
echo "Error: --file requires a non-empty argument."
exit 1
fi
@ -27,11 +30,11 @@ parse_args() {
shift 2
;;
-n|--number)
if [[ -z "$2" || "$2" == -* ]]; then
if [[ -z "${2}" || "${2}" == -* ]]; then
echo "Error: --number requires a non-empty argument."
exit 1
fi
NUMBER="$2"
NUMBER="${2}"
shift 2
;;
--) # Explicit end of options
@ -53,14 +56,4 @@ parse_args() {
# Defaults
VERBOSE="${VERBOSE:-false}"
NUMBER="${NUMBER:-42}"
}
# Aufruf der Funktion mit allen Skriptargumenten
parse_args "$@"
# Beispielnutzung
echo "Verbose mode: $VERBOSE"
echo "File: ${FILE:-<not set>}"
echo "Number: $NUMBER"
echo "Positional arguments: $@"
}
Loading…
Cancel
Save