reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
Talabalarimiz "CanSat Uzbekistan - 2025" musobaqasida g'olib bo'lishdi
💥 "O'zbekkosmos" agentligi tashabbusi bilan o'tkazilgan CanSat musobaqasida 250 nafarga yaqin o'quvchi va talabalardan iborat 10 ta jamoa o'zlarining mikrosputniklarini balandlikka uchirdi.
✅ Kichik sputniklar havo harorati, masofa va bosim kabi ma'lumotlarni talabalar o'zlari ishlab chiqqan dasturga yubordi.
✨ Talabalarimiz yaratgan CanSat qurilmasi boshqalardan bir qancha tomonlama mukammalligi e'tirof etilib, musobaqa tashkilotchilari tomonidan faxrli 1-o'ringa munosib ko'rildi.
⚡️Talabalarimizni ushbu yutuq bilan tabriklaymiz va xalqara miqyosda o'tkazilishi rejalashtirilgan CanSat musobaqasida ham g'alaba qozonishlariga ishonamiz.
🔁English
➖➖➖➖➖➖➖➖➖➖
#CanSat#musobaqa
⬇️ Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
#cplusplus#arduino#cansat#csv#embedded#graph#ground_station#iot#microcontroller#network#projects#qt#serial#serial_studio
Serial Studio is a free, easy-to-use tool that lets you visualize real-time data from devices like microcontrollers via serial ports, Bluetooth, or network connections. It works on Windows, macOS, and Linux, and offers customizable dashboards with various widgets to monitor sensor data, debug info, or telemetry. You can quickly plot data, export it as CSV for analysis, and even use advanced features like checksum validation and JavaScript data processing. It supports hobbyists, educators, and professionals by simplifying data monitoring and debugging, saving you time and effort in understanding your device’s output. Pro versions add commercial use and extra features[1][4][5].
https://github.com/Serial-Studio/Serial-Studio