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
👥WinBoat | 在 Linux 上原生运行 Windows 应用的开源工具
WinBoat 让你无需频繁切换系统,就能在 Linux 桌面直接运行 Windows 应用。它通过在 Docker 中运行 Windows 虚拟机,并与 Linux 桌面环境整合,实现 Windows 应用以 原生窗口 形式显示,还能 共享文件系统,让两边的工作无缝衔接
工具提供 自动化安装流程,支持运行任意 Windows 应用,甚至可切换到完整的 Windows 桌面。只需保证 Linux 开启 KVM 虚拟化 并有 4GB 内存以上,即可从发布页面下载 AppImage 轻松安装,马上体验跨系统的丝滑办公体验
🚀在线官网 · 👩💻Github
标签:#WinBoat#Linux#Windows系统#Windows应用#Docker
🗓@xiuerSearch 搜索历史资源
✈️频道 | 💬群聊 | 📱中文包
Linux 和 macOS 系统自动化配置脚本,快速完成新机器环境初始化安装
https://github.com/X-Zero-L/rig
Rig your dev environment — shell, tmux, Docker, Node.js, Python, Claude Code, Codex, Gemini, and more.
#Shell#Tool#GitHub#Linux#macOS
🖥 Sizlar uchun Linux (Ubuntu) tizimida VS Codeda ishlashni osonlashtiradigan tezkor tugmalar ro‘yxatini PDF formatda tayyorladim.
Ushbu PDF faylni yuklab olib, kod yozishda yanada samarali va qulay ishlashingiz mumkin!
👉Boshqa foydali ma’lumotlar va qo‘llanmalar uchun blogimni kuzatishda davom eting!🚀
#linux#vscode#tezkor_tugmalar
💻@jonibek_turapov
KDE Gear 26.04 released
KDE Gear 26.04 应用程序套件已发布。本次更新包含多项改进:Merkuro 日历优化了日程视图和事件编辑器;NeoChat 矩阵聊天客户端新增了对话题(Threads)的支持;Dolphin 文件管理器现在可以为“几乎所有菜单、插件或扩展中的选项”添加快捷键。完整更新、功能增强和错误修复列表请查阅官方变更日志。
原文链接:https://kde.org/announcements/gear/26.04.0/
#Linux#开源软件#KDE
#AIGC
Read more