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
🟢 Razer o‘zining ilk afsonaviy o‘yin sichqonchasi Boomslang’ni qayta chiqaradi — yangilangan ichki texnologiyalar va cheklangan sonli kolleksion nashrda
📅 2005-yilda taqdim etilgan BoomslangPC-gaming uchun maxsus yaratilgan dunyodagi birinchi sichqoncha bo‘lib, o‘yin periferiyasining butun bir sanoatini boshlab bergan edi. Endi kompaniya uning 20 yilligiga bag‘ishlab Razer Boomslang 20th Anniversary Edition'ni taqdim qildi.
✅ Tashqi ko‘rinishi deyarli o‘sha klassik shaklda qolgan, ammo ichki qismi to‘liq zamonaviylashtirilgan: Focus Pro 45K Gen-2 sensor, Gen-4 optik tugmalar, 45 000 DPI gacha qo‘llab-quvvatlash, HyperSpeed wireless, 8000 Hz polling rate va zaryadlovchi dok-stansiya. Korpus yarim shaffof, 9 zonali RGB yoritishga ega, istalgancha qo‘shiladigan shisha oyoqchalar bilan.
🖱 Vazni va narxi hozircha oshkor qilinmagan. Ma’lum bo‘lgan yagona narsa — Razer atigi 1337 dona chiqaradi va har bir sichqoncha o‘ziga xos raqamga ega bo‘ladi.
➡️#razer | Birinchi IT-Blog
🔥 Geymerlar uchun yangi kreslo chiqadi
ℹ️Trashbox.ru xabariga ko‘ra, Razer kompaniyasi ichki qizdirish va sovutish texnologiyasiga ega bo‘lgan kresloni tayyorlamoqda. Bu texnologiya haroratni foydalanuvchiga mos ravishda nazorat qiladi.
🌡 Qurilma iqlim sharoitiga qarab avtomatik ravishda qizitish yoki sovutish funksiyalarini ishga tushiradi. Bir nechta rejim orqali foydalanuvchi o‘ziga mos haroratni tanlashi mumkin. Smart monitoring texnologiyasi esa atrof-muhit sharoitini tahlil qilib, qulaylikni maksimal darajada saqlab turadi.
💸 Narxi $1500-2000 bo'larmish.
➡️#razer | Birinchi raqamli IT-Blog
Top Tech Announcements from CES 2025
🔍CES 2025 Highlights:
1. Roborock & Dreame: New vacuum robots with robotic arms, lifting items up to 500g.
2. Lenovo: Introduced ThinkBook Plus Gen 6 with expandable OLED display, from 14 to 16.7 inches.
3. Nvidia: Launched RTX 50 series, featuring DLSS 4 for significant performance boosts.
4. SwitchBot: Unveils modular robot K20 Plus Pro, combines various home tasks.
5. Razer: Debuted Project Ava, a real-time gaming assistant chat-bot.
6. Dell: Introduced a 32-inch QD-OLED monitor that adapts sound to user's head position.
7. TCL: Showcases Ai Me, a companion robot with interactive features.
8. Based Hardware: Reveals Omi, a wearable device with a neuro-helper powered by GPT-4.
9. Withings: Presents the Omnia smart mirror, integrating health data from wearables.
10. Halliday: Launches smart glasses with real-time translation capabilities.
#CES2025#TechAnnouncements#Robots#AI#Nvidia#Gaming#Wearables#SmartHome#Lenovo#Roborock#Dreame#Razer#Dell#TCL#SmartGlasses#HealthTech#Innovations#Gadgets#VR#ComputerHardware#VC