После миграции моего мегаскрипта для подготовки видеоконтента с linux на правильную ОС возникла ошибка expr(1):
expr: illegal option -- s usage: expr [-e] expression
Ошибка генерируется внутри shflags – в сторону expr(1) передается параметр, начинающийся с ‘-’ (минус), чего штатный expr(1) не принимает. Оставим в сторону его корректность или некорректность в данном конкретном случае.
Выйти из ситуации можно достаточно просто: идем в /usr/ports/sysutils/coreutils, делаем make install clean и получаем установленные GNU Coreutils. Версии утилит имеют префикс g – gexpr, gkill, gdu и т.п. Полный список можно посмотреть в pkg-descr, расположнном в каталоге /usr/ports/sysutils/coreutils.
Итак, мы имеем установленный более другой expr(1) с именем gexpr. Открываем /usr/local/lib/shflags, меняем все строки expr на gexpr и, вуаля – наш суперскрипт работает без проблем.