Merge pull request '„teil23/parseargs.sh“ ändern' (#1) from develop into master
Reviewed-on: #1
This commit is contained in:
		| @@ -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: $@" | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user