я в настоящее время разбора вариантов в сценарии, как, что:getopts не признает знак вопроса
while getopts ":ia" OptionArgument; do
case $OptionArgument in
i) echo "bli";;
a) echo "bla";;
*) echo "flag not known";;
?) echo "unknown parameter";;
esac
done
Каждый разборе вариант и флаг работы - кроме этой: ?)
. Поэтому, если я вызываю свой скрипт с чем-то вроде ./MyScript hjrfgdskjgh
, он правильно передает цикл, хотя он должен быть зацепился в последней строке с ?)
.
Я также попытался удалить котировки с ":ia"
или с помощью \?
или .)
- ничего не работает! Что я делаю неправильно?
Использует ли?? Работа? –
'*) echo" flag not known ";;' делает то, что '?' Будет делать. Если вы прокомментируете '*) ...' вы получите '?)' Работа. – fedorqui
Оба не работают: '*)' только анализирует неизвестные флаги, такие как, например, -x или -y. Но он игнорирует случайные слова типа 'kajdhkjefhskef'. Если я удалю '*)' или заменим 'it на '?) 'из-за заказа - ничего не меняется. Это похоже на то, что он вообще не знает '?' ... – Malvin