Несколько опционных аргументов с использованием getopts (bash)
Я пытаюсь обработать аргументы командной строки, используя getopts в Bash. Одним из требований является обработка произвольного числа аргументов опции (без использования кавычек).
1-й пример (только 1-й аргумент)
madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a
2-й пример (я хочу, чтобы он вел себя так, но без необходимости приводить аргумент
madcap:~/projects$ ./getoptz.sh -s "a b c"
-s was triggered
Argument: a b c
Есть ли способ сделать это?
Вот код, который я сейчас имею:
#!/bin/bash
while getopts ":s:" opt; do
case $opt in
s) echo "-s was triggered" >&2
args="$OPTARG"
echo "Argument: $args"
;;
\?) echo "Invalid option: -$OPTARG" >&2
;;
:) echo "Option -$OPTARG requires an argument." >&2
exit 1
;;
esac
done