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
📌 Une escadre de la flotte du #Pacifique, composée du sous-marin diesel-électrique Petropavlovsk-Kamtchatsky, de la corvette Gromky et du remorqueur Andreï Stepanov, a achevé son programme de visite officielle au port de #Qingdao, en République populaire de #Chine.
La flottille a mis le cap sur la mer Jaune, conformément au plan de sa mission.
RT en français • Osez questionner !
📌 Une escadre de la flotte du #Pacifique, composée du sous-marin diesel-électrique Petropavlovsk-Kamtchatsky, de la corvette Gromky et du remorqueur Andreï Stepanov, a achevé son programme de visite officielle au port de #Qingdao, en République populaire de #Chine.
La flottille a mis le cap sur la mer Jaune, conformément au plan de sa mission.
RT en français • Osez questionner !
🚢🤖Qingdao провёл первую в мире полностью беспилотную контейнерную операцию
В порту Циндао реализована первая end-to-end схема «судно-причал-терминал» без участия экипажа.
Электрофидер Zhi Fei (300 TEU) выполнил заход в порт полностью автономно — от подхода к причалу до обработки контейнеров.
Что прошло «без рук»:
🔹 автономная навигация и постановка к причалу
🔹 автокрепление через систему vacuum mooring — вакуумные «присоски» вместо швартовых концов (≈30 секунд, без команды на палубе)
🔹 автоматизированная обработка на терминале: причальные краны + AGV под управлением A-TOS / A-ECS
Оператор Brinav сообщает, что судно выполняет коммерческие рейсы с 2022 года и уже прошло около 1 300 рейсов. Предусмотрены три режима работы: ручной, дистанционный и автономный — при постоянном контроле берегового центра с возможностью перехвата управления.
📌 Если технология масштабируется, это меняет экономику коротких морских линий: меньше простоев, быстрее швартовка, ниже операционные издержки.
#ТИСЛОДЖИСТИК#контейнеры#автономноесудоходство#Qingdao