как сделать getopts просто читать первое символьное сообщение '-'

Самый легкий способ выбрать некоторые подходящие зеркала с netselect. Можно использовать -s 3 опция сказать этому выбирать 3 лучших сервера.

3
01.08.2012, 11:21
2 ответа

После регистрации его на 3 форумах и поиске везде... в конечном счете я попробовал следующее, и это работало...

testShell.sh  -jvalue1 -evalue4 -- -Djvalue3  -pvalue2

Заметить

--  

после -evalue4

И вывод был

j=value1
e=value4
remaining=-Djvalue3 -pvalue2

Я верю -- спрашивает getopts прекратить обрабатывать опции.

1
27.01.2020, 21:20
  • 1
    я рад это вид работ для Вас..., но... в то время как это может работать в Вашей текущей ситуации, она вряд ли будет работать всего, и у Вас, вероятно, будет случайное странное поведение, потому что Вы настаиваете на том, чтобы использовать getopts вопреки документации, в которой говорится, что пространство между выбиранием и optstring требуется. использование -- вот взлом, не фиксация. –  cas 01.08.2012, 13:37

попробуйте это:

$ ./testShell.sh  -j value1 -e value4 -D jvalue3  -p value2
j=value1
e=value4
remaining=jvalue3 -p value2

Отметьте пробелы между опциями и строками опции.

help getopts говорит:

OPTSTRING contains the option letters to be recognized; if a letter
is followed by a colon, the option is expected to have an argument,
which should be separated from it by white space.

т.е. пространство между опцией и любой строкой опции требуется.

При необходимости в больше, чем удар, встроенный getopt способен к,/usr/bin/getopt утилита поддерживает и долгие и короткие опции, с или без пробелов между строкой опции и опциями. также поддерживает дополнительные функции как дополнительная строка args.

BTW,/usr/bin/getopt доступен в пакете util-linux в debian и производных как человечность... dunno о других дистрибутивах, или *отклоняет, но источник будет доступен из архивов debian, если Вы не можете найти его больше нигде.

3
27.01.2020, 21:20
  • 1
    +1. Ваше пространство дало мне направления для получения до -- опция.спасибо. –  SiB 01.08.2012, 13:18

Теги

Похожие вопросы