Последовательно ли LUKS сопоставляет секторы?

getopts bash используют переменную среды OPTIND для отслеживания последнего обработанного аргумента опции. Тот факт, что OPTIND не сбрасывался автоматически каждый раз, когда вы вызывали getopts в том же сеансе оболочки, а только при вызове оболочки. Итак, когда вы второй раз вызвали getopts с теми же аргументами в том же сеансе, OPTIND не был изменен, getopts думали, что они выполнили свою работу и ничего не сделали .

Вы можете сбросить OPTIND вручную, чтобы заставить его работать:

$ OPTIND=1
$ f -a 123
-a was triggered, Parameter: 123

или просто поместите функцию в скрипт и вызовите скрипт несколько раз.


zsh getopts немного отличается. OPTIND обычно сбрасывался в 1 каждый раз при выходе из функции оболочки.

1
12.12.2017, 00:04
0 ответов

Теги

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