Я пытаюсь написать сценарий оболочки Korn, который использует getopts
для получения параметров командной строки. Пример, приведенный в книге, которую я использую, дает описание использования getopts
с этим:
#!/bin/ksh
a="not selected"
b="not selected"
b_arg="not selected"
c="not selected"
c_arg="not selected"
d="not selected"
while getopts "ab#c:d" optchar ; do
case ${optchar} in
a) a="selected"
;; # the ;; marks the end of this case
b) b="selected"
b_arg=${OPTARG}
;;
\?) echo "error message goes here"
exit 1
;;
esac
done
Я пытаюсь написать сценарий оболочки Korn, который принимает -c
, -l
, -p
, -r
и -f
, но когда я изменяю цикл на
c="not selected"
l="not selected"
p_arg="not selected"
p="not selected"
r_arg="not selected"
r="not selected"
f="not selected"
while getopts "clp#r:f" optchar ; do
case ${optchar} in
c) c="selected"
;; # the ;; marks the end of this case
Я получаю сообщение об ошибке «Синтаксическая ошибка в строке 13: 'in», но если я просто изменил переменные в строке, я не понимаю, как это вызывает синтаксическую ошибку. Спасибо за любую помощь или объяснение, которое указывает мне в правильном направлении!
.
в вашем вопросе, который портит форматирование. - person chepner   schedule 03.06.2014