This commit is contained in:
2026-02-12 05:42:42 +01:00
parent ea5900d9ab
commit 01372ed6dd
3 changed files with 114 additions and 0 deletions

55
teil27/getopt_demo.sh Executable file
View File

@@ -0,0 +1,55 @@
#! /usr/bin/bash
help=0
verbose=0
level=""
# parsing the valid arguments
VALID_ARGS=$(getopt -o hvl: --long help,verbose,level: -- "$@")
if [[ $? -ne 0 ]]; then
exit 1;
fi
eval set -- "$VALID_ARGS"
print_params() {
count=0
for var in "$@"
do
echo "Param ${count}: ${var}"
count=$((${count} + 1))
done
}
print_params "$@"
echo "VALID_ARGS=${VALID_ARGS}"
eval set -- "$VALID_ARGS"
print_params "$@"
while [ : ]; do
case "${1}" in
-h | --help)
help=1
shift
;;
-v | --verbose)
verbose=1
shift
;;
-l | --level)
level="${2}"
shift 2
;;
--) shift;
break
;;
*) echo "unbekannter Parameter ${1}"
exit 1
esac
done
echo "help=${help}"
echo "verbose=${verbose}"
echo "level=${level}"

38
teil27/param_parsing.sh Executable file
View File

@@ -0,0 +1,38 @@
#! /usr/bin/bash
help=0
verbose=0
level=""
args=()
while [[ $# -gt 0 ]]; do
case "${1}" in
-h|--help)
help=1
shift
;;
-v|--verbose)
verbose=1
shift
;;
-l|--level)
level="${2}"
shift 2
;;
*)
args+=("${1}")
shift
;;
esac
done
echo "help=${help}"
echo "verbose=${verbose}"
echo "level=${level}"
count=0
for var in "${args[@]}"; do
echo "Arg ${count}: ${var}"
((count++))
done

21
teil27/test_param.sh Executable file
View File

@@ -0,0 +1,21 @@
#! /usr/bin/bash
print_params() {
count=0
for var in "$@"
do
echo "Param ${count}: ${var}"
count=$((${count} + 1))
done
}
VALID_ARGS=$(getopt -o hvl: --long help,verbose,level: -- "$@")
if [[ $? -ne 0 ]]; then
exit 1;
fi
echo "Originalargumente:"
print_params "$@"
eval set -- "$VALID_ARGS"
printf "\nnach eval set:\n"
print_params "$@"