Привет, ребята, в моем последнем посте я наконец-то добился того, чего хотел, и это можно увидеть в моем PR, который можно найти здесь. Это было все об Ajax и о том, как я улучшил процедуру установки с помощью Ajax.
Поставив на этом паузу, я продолжил писать свой сценарий оболочки.
Сценарий оболочки представляет собой текстовый файл, содержащий последовательность команд для операционной системы на базе UNIX. Он называется сценарием оболочки, потому что он объединяет в скрипт в одном файле последовательность команд, которые в противном случае должны были бы вводиться в систему с клавиатуры по одной за раз. Оболочка — это интерпретатор команд операционной системы и набор команд, которые вы используете для связи с системой. Сценарий оболочки обычно создается для последовательностей команд, в которых пользователь постоянно нуждается. Вы инициируете последовательность команд в сценарии оболочки, просто вводя имя сценария оболочки в командной строке.
Скриншот моего сценария оболочки можно увидеть ниже
По сути, этот сценарий предназначен для обновления вашей системы, чтобы программное обеспечение LibreEHR могло работать без сбоев и обеспечивать хороший UX. Это только для систем Unix/Linux, особенно для дистрибутивов Debian.
Я начал с подробной инструкции пользователю о том, как запустить скрипт, это видно на скриншоте ниже.
В моем сценарии я общаюсь с пользователем через графический интерфейс. Такие вещи, как вы хотите установить эти пакеты… Для этого я использовал встроенный инструмент zenity.
этот инструмент позволяет мне сообщать пользователю о возможных действиях, предпринятых сценарием, например, «доверяете ли вы LibreHealth установку следующих действий?». Если нажата кнопка «Нет», сценарий немедленно завершает работу. Фрагмент этого можно увидеть в строках кода ниже.
librehr.sh
zenity — вопрос — ширина = 350 — высота = 100 — текст = «Вы хотите установить этот пакет?» — title="Обновление LibrehealthEHR" 2› /dev/null
test=$? #получить ответ из диалогового окна
#сравнение полученного значения, чтобы увидеть, принял ли пользователь или нет
if [[ $test -eq $deny ]]; затем
эхо «обновление остановлено. Пользователь завершил действие»
exit;
else
echo «использовать принято»
fi
При этом я могу выйти из сценария или позволить сценарию продолжить установку.
Также одним очень важным аспектом является тот факт, что я запрашиваю пароль root, конечно, никто не захочет устанавливать пакеты из ненадежных сторонних материалов, и, кроме того, как простой пользователь. Поэтому я гарантирую, что установку выполняет корень. Это было достигнуто этой строкой. это проверяет, является ли пользователь root или нет.
if [[ «$EUID» = 0 ]]; тогда….
еще
sudo -k # не забудьте запросить пароль при следующем sudo
if sudo true; затем
Когда это будет сделано, я могу с радостью установить пакеты в системе пользователей, используя следующую команду
sudo apt-get install ‹package1›; sudo apt-get install ‹package2›
Короче говоря, сценарии устанавливают пакеты, необходимые для бесперебойной работы программного обеспечения LibreHealth EHR. Теперь я с нетерпением жду возможности написать эквивалентный скрипт для Mac OS. А пока вы можете посмотреть мой пулреквест здесь
Чемпионат мира по футболу
Я не закончу этот пост, не рассказав о своем волнении. По ходу игры я реализовывал сценарий и финальные экраны установки. Я люблю хорватский футбол и поддерживал их, но не смог посмотреть шоу, потому что был занят реализацией своего кода. Тем не менее, на серии пенальти я с бешеной скоростью побежал смотреть шоу. К счастью для меня, Хорватия вышла в полуфинал.
Теперь я могу сказать, что у меня был отличный день. и собираюсь хорошенько выспаться. До тех пор, ребята ;).