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
🐟На днях провели интересные тесты в демозале - нарезали на полуавтоматическом слайсере GSP HD охлажденную рыбу семейства лососевых.
Нам поступил запрос порезать слабосоленую (1% соли) рыбу на суши и роллы🍣
Честно признаемся, мы были сами впечатлены результатами теста!
ЗАДАЧА:
Толщина ломтика - 2-2,5 мм
Выход с куска - не менее 70%
РЕЗУЛЬТАТ:
100% попадание в ТЗ заказчика, красивый рез, стабильная толщина ломтика, рыба не расслаивается. Данное решение для заказчика означает стабильность результата и независимость от человеческого фактора, а значит и большая производительность с того же количества исходного продукта 👌🏼
#gsp#нарезка#слайсер
Давно не показывали на канале нарезку🔪
И сегодня предлагаем оценить результат нарезки рыбки🐟
Толщина нарезки - 2 мм
Автоматический слайсер GSP HD это:
• точная настройка толщины реза с шагом до 0,5 мм
• производительность до 90 резов в минуту
• работа в ручном и автоматическом режиме
• высочайший уровень гигиены
#нарезка#слайсер#bizerba#gsp
😁Unpredictable Stand-Up Attacks: High-Level Setups & Execution For Devastating Punches, Kicks By Georges St. Pierre😁
➡️Unlock the secrets to devastating stand-up striking with Georges St. Pierre, one of the greatest mixed martial artists of all time, in his groundbreaking instructional series, Unpredictable Stand-Up Attacks: High-Level Setups &Execution for Devastating Punches, Kicks.
➡️In this expertly crafted program, GSP—known for his mastery of strategy, timing, and versatility—breaks down the art of unpredictable striking and its application in both striking and MMA.
➡️Whether you’re a beginner looking to build a solid foundation or an advanced fighter aiming to sharpen your skills, GSP’s proven techniques will elevate your striking game to new heights
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Striking#UFC305
💁♀️Buy
💁♀️
😁Mastering Takedowns: All Tricks & Techniques For Unstoppable Takedowns By Georges St. Pierre😁
➡️Unlock the secrets to dominating takedowns with Mastering Takedowns: All Tricks &Techniques for Unstoppable Takedowns by Georges St-Pierre, one of the greatest martial artists of all time.
➡️Whether you’re a beginner looking to build a strong foundation or an advanced athlete refining your techniques, this instructional provides actionable strategies, drills, and tactics used by the best in the business
➡️Georges St-Pierre’s unique approach blends traditional grappling knowledge with modern MMA strategy, giving you the tools to control the fight from the moment the first punch is thrown.
$197😍$19.99😍
❗️Channel Info and FAQ (MUST CHECK BEFORE BUY)❗️
📱Payment: 📱📱📱
💰Submeta FOR FREE
🌈UFC Picks
👑MasterClass
✈️@bjjfanaticsinstructionals
#GSP#UFC#Takedowns#MMA#UFC305
💁♀️Buy
💁♀️