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
🚢США–Иран: риски для судоходства и последствия для чартеров.
Эскалация напряжённости между США и Ираном усиливает правовые и операционные риски для судоходства в Ормузском проливе — ключевом канале, через который проходит около 35% мировой морской торговли нефтью.
С февраля фиксируются сообщения о попытках частичного ограничения движения, задержаниях судов и инцидентах с GPS/AIS-глушением и спуфингом. Управление MARAD рекомендовало судам под флагом США избегать иранских территориальных вод и сохранять активные AIS-транспондеры. На фоне роста военного присутствия США в регионе (включая авианосную группу USS Abraham Lincoln) повышается вероятность инцидентов.
С точки зрения английского права, возможная блокада или атаки на суда могут активировать положения о «war risks» в чартер-партиях, включая стандартные оговорки BIMCO CONWARTIME и VOYWAR. Даже без формальной блокады угрозы и попытки принудительного захода в территориальные воды могут квалифицироваться как военный риск, что даёт сторонам определённые контрактные права и обязанности.
Дополнительный фактор — AIS/GPS-спуфинг. Хотя его квалификация как «war risk» менее однозначна, системные кибер- и радиоэлектронные вмешательства повышают навигационные риски, могут повлечь отклонение маршрутов и увеличение страховых премий.
Пролив остаётся открытым, однако совокупность геополитических, правовых и навигационных факторов усиливает неопределённость для фрахтователей, судовладельцев и страховщиков.
📌BIMCO (Baltic and International Maritime Council) — международная судоходная ассоциация, основанная в 1905 году, разрабатывает стандартизированные чартерные формы и оговорки, включая CONWARTIME и VOYWAR. Организация является независимой некоммерческой структурой, финансируемой членами.
#Hormuz#WarRisks#Charterparty#MaritimeLaw#ShippingRisk
Судья Батчер снова в эфире. После июньского мегапроцесса на $10+ миллиардов, где лизинговые компании воевали со страховщиками за «пропавшие» в России самолёты, суд выдал новый — «послевкусный» — акт: проценты, издержки, разрешения на апелляцию.
В сухом остатке — победители и побеждённые остались те же. AerCap, крупнейший лизингодатель в мире, удержал победу против военных рисковиков. Но радость слегка остыла: проценты только простые (не сложные), ставка — US Prime, а не выше. Судья вежливо намекнул, что никто толком не доказал, что AerCap берёт кредиты дешевле «самых надёжных клиентов американских банков», и spreadsheet, которым страховщики пытались снизить ставку, суду показался «слабым».
На костах — классическая мясорубка. AerCap получит 65% своих расходов с военных страховщиков, HFW (all risks) — 90%, а Chubb, хоть и пытался откреститься, попал на те же 65%. Платежи «на счёт» — 45–50%. В переводе с лондонского процессуального — «вам, господа, придётся заплатить, и прилично».
Апелляцию судья срезал без колебаний. 23 grounds от war risks, 5 от Chubb — всё в мусор. Цитируя Court of Appeal: «trial — это не генеральная репетиция, это премьерный и финальный показ». Суд устал от бесконечных попыток «переиграть по-новой», особенно после 33-дневного суда с экспертами, графиками и взаимными обвинениями.
Итог: авиастраховой рынок получил сигнал — суду хватит терпения ровно на один эпизод. Повторов не будет.
Все спорили о процентах, ставках, процентах на издержки — но главный процент здесь моральный. Все стороны, включая гигантов с десятками QC, выглядели как ученики, пересдающие один и тот же экзамен. В этом смысле “Russian Aircraft saga” — уже не дело, а эпопея о том, как международное право и страховые политики не рассчитаны на катастрофы геополитики.
#EnglishLawReport#CaseSpotlight#AerCap#Chubb#WarRisks#HighCourt#CommercialCourt#Judgment#SkepticalView