Wiele argumentów opcji przy użyciu getopts (bash)
Próbuję przetworzyć argumenty wiersza poleceń za pomocą getopts w bashu. Jednym z wymagań jest przetwarzanie dowolnej liczby argumentów opcji (bez użycia cudzysłowów).
1-szy przykład (pobiera tylko pierwszy argument)
madcap:~/projects$ ./getoptz.sh -s a b c
-s was triggered
Argument: a
Drugi przykład (chcę, żeby zachowywał się tak, ale bez potrzeby cytowania argumentu)
madcap:~/projects$ ./getoptz.sh -s "a b c"
-s was triggered
Argument: a b c
Czy istnieje sposób, aby to zrobić?
Oto kod, który mam teraz:
#!/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