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
Introducing Moonforge: a Yocto-based Linux OS (Igalia Blog)
Igalia 宣布推出基于 OpenEmbedded 和 Yocto 的 Linux 发行版 Moonforge。
Moonforge 是一个面向 Linux 设备的操作系统框架,旨在简化和维护自定义操作系统的构建过程。它提供了一套精心挑选的 Yocto 层和配置文件,帮助开发者生成不可变的、可维护的且易于更新的操作系统镜像。
其目标是为构建嵌入式 Linux 产品的团队提供最佳的开发体验。Moonforge 处理了操作系统创建中的复杂方面,如系统集成、安全性、更新和基础设施,从而使开发者能够专注于构建和部署他们的应用程序或设备。
原文链接:https://lwn.net/Articles/1062451/
#Linux#嵌入式系统#开源#操作系统
#AIGC
Read more
Support period lengthened for the 6.6, 6.12, and 6.18 kernels
Linux 内核 6.6、6.12 和 6.18 版本的官方支持周期已延长。
根据内核官网的提交记录,6.6 内核的稳定更新支持将延长至 2027 年底,总计提供四年的支持。6.12 和 6.18 内核的稳定更新支持将延长至 2028 年底,分别提供四年和三年支持。
原文链接:https://lwn.net/Articles/1060271/
#Linux#内核#开源#技术维护
#AIGC
Read more
[$] More efficient removal of pages from the direct map
内核的直接映射(direct map)允许运行在内核模式的代码直接访问系统中安装的所有物理内存——至少在64位系统上是这样。这显然让内核开发者的工作更轻松,但直接映射也带来了一些自身的问题,其中大部分与安全相关。
多年来,人们一直有兴趣从直接映射中移除至少部分内存页。目前正在讨论的几个补丁集展示了从直接映射中移除的内存的一些用例,以及如何高效地管理这类内存。
原文链接:https://lwn.net/Articles/1064090/
#Linux#内核#内存管理#安全
#AIGC
Read more
📰 Steam Beta brings Big Picture Mode tweaks, Linux improvements and Steam Controller fixes
Valve released another new Steam Client Beta update for all platforms on May 13th, bringing with it a few styling changes to Big Picture Mode and various fixes.Read the full article on GamingOnLinux.
🔗 Source: https://www.gamingonlinux.com/2026/05/steam-beta-brings-big-picture-mode-tweaks-linux-improvements-and-steam-controller-fixes/
#linux#steam
📰 This $30 app is the best purchase I've made for my Steam Deck
Linux and Windows don't play nicely with each other, but this app solves that problem.
🔗 Source: https://www.xda-developers.com/this-app-is-the-best-purchase-ive-made-for-my-steam-deck/
#linux#steam
📰 Don't forget to claim your Amazon Prime games for May via Amazon Luna
Have Amazon Prime? You can claim some games to keep via Amazon Luna (formerly Prime Gaming) - here's what you can grab for Linux / SteamOS and Steam Deck.Read the full article on GamingOnLinux.
🔗 Source: https://www.gamingonlinux.com/2026/05/dont-forget-to-claim-your-amazon-prime-games-for-may-via-amazon-luna/
#linux#steam