Обработка аргументов в bash-скриптах без getopt и getopts

Привет. Я в свободное время для рабочих целей пишу один проект, который состоит из кучи bash-скриптов. Есть одна точка входа, которая из cli принимает аргументы. Этот скрипт подключает остальные куски функционала через source. В этих кусках описаны функции, которые должны обрабатывать разные аргументы, нужные только для чего-то конкретного.

В первой версии проекта я просто явно передавал $1, $2, $N сверху вниз, в другие функции. Это было топорным решением, и оно работало, потому что возможные аргументы и их порядок был известен и прост. Но эстетически это было отвратительно. Чтобы мне было приятно смотреть на код, нужно было сильно усложнить вообще всё, чтобы всё стало намного проще.

Итак, я должен принимать от пользователя разные аргументы в разные функции, при этом я хочу дать пользователю возможность передать на вход:

  • длинные аргументы без значений:
    ./script.sh --foo --bar
  • длинные аргументы со значениями:
    ./script.sh --foo=bar
  • короткие аргументы без значений:
    ./script.sh -a -b -c
  • короткие аргументы со значениями:
    ./script.sh -a avalue -b bvalue
  • комбинировать короткие любые короткие аргументы в одно слово:
    ./script.sh -abc bvalue
  • всё перечисленное выше — одновременно!
  • порядок аргументов не должен иметь значения
  • иметь доступ к любому из них откуда угодно в любой момент времени.
Опубликовано
В рубрике blog Отмечено

Прошивка Irbis TZ722

Прошивка

TZ722

Попал ко мне в руки этот бюджетный планшет. Случилась с ним окказия: выключается сразу после загрузки. Заряжается исправно. А куплен был несколько недель как.

По гарантии пока не понесу, т.к. корпус уже повидал некоторое дерьмо — могут и домой развернуть. Так что попробовать своими силами восстановить — это я завсегда.

Поэтому решил начать с прошивки. Но вот незадача — нигде её нет. Вообще. Нигде. Нет ни инфы как прошивать, ни прошивки. Под словом нигде следует понимать, в первую очередь, 4pda и официальный сайт. Там есть TZ721 и TZ723, а TZ722 нет ни в каталоге, ни в разделе поддержки (там его и по серийнику не найти).

Опубликовано
В рубрике blog Отмечено

Instagram API без бюрократии, токенов и вот этого всего

Не знаю много ли статей на эту тему и насколько это широко известно. Просто сохраняю полезную заметку для себя и тебя.

Наверное, ты будешь удивлён, но для работы с апи инсты не надо вообще ничего оформлять, иметь аккаунт разработчика и прочее. Надо отправить один лишь обычный GET-запрос, только в конце адреса подставить ?__a=1. Смотри на моём примере.

Чтобы получить инфу о профиле, используй такой линк:

Опубликовано
В рубрике blog Отмечено ,

Не работает микрофон гарнитуры на Ubuntu

Суть проблемы: при подключении гарнитуры с TRRS-коннектором звук в наушниках был, но звук с гарнитуры система не получала, т.к. гарнитура вовсе не определялась как устройство ввода, поэтому приходилось зависать во всяких скайпах с телефона через ту же гарнитуру.

Решение оказалось элементарным.

Опубликовано
В рубрике blog Отмечено

Ubuntu Mate на ноутбуке с сенсорным экраном работает некорректно

Привет.

В среде MATE есть известный баг, когда тачскрин работает не на один экран, а на весь десктоп. То есть если подключены дополнительные мониторы, то, водя пальцем по тачскрину, ты видишь как курсор бегает по всем подключенным мониторам (по всему общему для всех экранов рабочему пространству).

Этому багу уже больше двух лет и фиксить его не собираются, потому что есть решение, которое несложно провернуть самому. Обидненько, потому что в других оболочках вроде такой ерунды нет и тач работает исправно сразу.

Опубликовано
В рубрике blog Отмечено ,