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
Как пелось в песне... не стареют душой ветераны.
А некоторые из них ещё духом и даже телом.
Один британский моряк-ветеран Второй Мировой подвергся нападению грабителей, когда ему было уже за 80. Двое молодых и наглых решили, что дедушка с тростью лёгкая добыча. Подойдя к нему они потребовали у него кошелек. Дед согласился, но попросил достать кошелек из кармана самим, так как ему трудно достать... Артрит там, артроз и всякая такая подагра. Когда один из грабителей наклонился, чтобы залезть в карман за кошельком, то получил от дедушки кулаком в нос. Затем и другому прилетел хук слева, а потом оба ещё получили тростью по жбану, после чего грабители, офигевшие от такого напора жертвы, сделали ноги. Не знали они, что дедушка после гибели своего корабля почти неделю провел в море со сломанной ногой и стал единственным выжившим из всего экипажа, потому что до службы занимался спортом. А после войны стал профессиональным боксером, дрался на ринге, как в перчатках, так и без. Конечно, кошелек не стоит жизни, но ветеран решил дать последний бой и победил. На принцип, видимо, пошёл.
#rn
И смех и грех. В море австралийский крейсер "Канберра" заметил британское судно "Драматик". Обнаружение было обоюдным, так как транспорт начал открыто радировать в эфир, что его преследует военный корабль с тремя трубами. Крейсер потратил десять минут, чтобы связаться с ним и приказал прекратить драматизировать и свернуть трагедию в эфире. #rn
Во время Второй Мировой британцы передали часть своих подводных лодок экипажам из союзных стран. Последние формировались из подводников, бежавших в Великобританию после оккупации их стран Германией, чтобы продолжить борьбу с Гитлером.
Союзные подлодки находились в оперативном подчинении Королевского флота, а в подводных силах метрополии была флотилия, состоявшая из союзных подлодок.
Британские субмарины были переданы норвежским, голландским, греческим, польским экипажам, а также французским из «Свободной Франции».
Но был нюанс. Всем перечисленным экипажам были переданы подлодки типа U, за исключением голландцев, которые получили подлодки типа Т.
Подлодки типа U по своим характеристикам не могли сравниться с типом Т, ни по вооружению, ни по автономности, ни по условиям жизни на борту.
Подлодки тип Т на тот момент были пиком вершины британского подплава - самыми грозными британскими подводными кораблями, способными разом атаковать цель десятью торпедами. Так почему же голландцы были удостоены доверия и получили возможность воевать на тип Т, а другие союзники нет?
Ваши соображения?)
#sub#rn
А документы, граждане, треба носить с собою (с)
Любопытный казус произошел в мае 1940-го, когда британская субмарина остановила в море судно в Норвежском море. Проверка документов выявила британского "купца", который направлялся в Мурманск. Судно было отпущено. Однако, британские подводники не догадались, кого они задержали. Это было британское судно-ловушка, привлекавшее к себе внимание немецких подлодок. Когда британская субмарина была замечена, то командир судна решил не раскрывать себя и ловушка притворилась обыкновенным транспортом. Липовые судовые документы проверку выдержали. ⚓️🇬🇧. #rn#sub
Храбрые итальянские моряки
Британская субмарина "Амбра" схлестнулась в бою с итальянским пароходом "Джима". Так как выходить в торпедную атаку на него было неудобно, британцы решили расправиться со старым судном с помощью 102-мм пушки. Но и у итальянцев тоже была пушка - 76-мм. "Амбра" открыла огонь с трех км, но уже после восьмого выстрела противника была вынуждена быстро смыться с помощью срочного погружения. Причина: итальянцы стреляли настолько метко, что британцами стало ясно - победы в артбою им не одержать. После этого "Амбра" всё-таки попыталась выйти в торпедную атаку, но "Джима", выжимая из своей машины что можно и нещадно тратя уголь, ушёл от ПЛ, которая так и не рискнула всплыть снова. В итоге, густо дымя, уходивший пароход, как бы дразнил противник, который беспомощно сидел под водой.
#rn#sub
"Трудная мишень"
Действуя у побережья Греции британская ПЛ "Торбей" обнаружила любопытный караван. Три буксира, идущие в кильватерной колонне, тащили за собой плавучий док в охранении шести небольших военных кораблей. Док был здоровый более 100 М длиной, плыл с небольшой скоростью. Практически, идеальная мишень, если бы не одно но - осадка целей была тоже небольшая. Командир ПЛ решил, что глубины хода торпед в метр будет достаточно и выпустил по буксирам и доку шесть торпед. И не дождался ни одного взрыва. Судя по всему, торпеды прошли под целями, так как дистанция до них была чуть более 1 км, а цели не меняли курса и скорости.
Потерпев неудачу, британцы плюнули и решили, что надо вообще пустить торпеды по поверхности, так как при такой дальности увернуться цели бы точно не успели. Тогда ПЛ выпустила две торпеды с углублением в 0 и они обе попали в док, потопив его.
#sub#rn
Британская ПЛ "Танталус" обнаружила у Малаккского полуострова и обстреляла небольшой японский каботажник. Первый выпущенный снаряд попал в цель и вызвал пожар в средней части судна, а последующие выстрелы - пламя в машинном отделении. После пяти выстрелов огонь был прекращен, и команда покинула судно. Затем было выпущено еще десять снарядов, чтобы прикончить его. Каботажник назывался "Паханг Мару", он направлялся из Куантана в Бангкок с 75 бочками мазута и 9 бочками смазочного масла. Затем он должен был загрузить 250 тонн риса в Бангкоке для возвращения в Куантан. После гибели судна следующие полчаса у британцев ушли на то, чтобы подобрать выживших, среди которых было девять малайцев, один китаец и один японский солдат. Последний уплыл далеко от остальных и поначалу отказывался от того, чтобы его поднимали. После безуспешной попытки утопиться он в конце концов схватился за трос и был поднят на борт. Японец обгорел и был очень напуган. Командир ПЛ лейтенант-коммандер Маккензи решил избавиться от местного экипажа как можно скорее. Он посадил местный экипаж на борт первой встретившейся китайской джонки. Японец, судя по всему, остался на борту лодки.
#sub#rn
Британский "Лунин".
9 ноября 1941-го командир британской ПЛ "Апхолдер" Д. Ванклин (по итогам войны самый результативный подводник Великобритании) оказался в схожей ситуации, что и командир К-21 Н. Лунин 5 июля 1942-го.
После разгрома британскими крейсерами и эсминцами итальянского конвоя "Дуйсбург" лодка Ванклина атаковала итальянские эсминцы проводивших подбор выживших с судов конвоя. Торпеды "Апхолдер" оторвали корму эсминцу "Libeccio", который после этого не затонул и был взят на буксир другим эсминцем. Позже в тот же день Ванклин атаковал два тяжелых крейсера класса "Trento" тремя торпедами. Согласно итальянским источникам, его целью была оперативная группа, состоявшая из тяжелых крейсеров "Trento" и "Trieste" в сопровождении эсминцев "Granatiere" , "Fuciliere", "Bersagliere" и "Alpino" . После торпедного залпа торпеды повели себя по разному: две пошли в сторону целей, а третья оказалась "бегуном по кругу", начав кружить над подлодкой, ушедшей после залпа на глубину. Там Ванклин услышал два взрыва и шумы тонущего корабля. Когда он подсплыл под перископ, то увидел два крейсера и эсминец. Так как перед торпедной стрельбой Ванклин видел рядом с крейсерами два эсминца, а уже после атаки был виден только один из них, то командир ПЛ решил, что торпеды поразили один из эсминцев, о чем и говорили шумы тонущего корабля. Поэтому Ванклин с чистой совестью посчитал, что в крейсера он не попал, но потопил один из сопровождавших их эсминцев. Что оказалось в реальности? Торпеды "Апхолдер" прошли мимо целей, а услышанные звуки тонущего корабля действительно были звуками тонущего эсминца, но это был поврежденный в предыдущей атаке эсминец "Libeccio", у которого как раз в момент нападения ПЛ на крейсера не выдержали переборки и он пошёл на дно. Вот такая интересная история. Схожесть случаев Ванклина и Лунин большая: оба атаковали группу тяжёлых кораблей, оба в в них не попали и оба предположили, что результатом их атак стало торпедирование эсминца.
#sub#rn
Батюшки, сколько "бегунов по кругу", да только не немецкие или американские, а британские! В сентябре 1941 британская ПЛ два раза выходила в атаку за свой поход и каждый раз в залпе оказывалась неисправная торпеда, начинавшая кружить вокруг лодки. Похоже, что и у британцев были серьёзные проблемы с гироскопами и, но про это известно куда меньше.
#sub#rn
Из любопытного.
Во время похода у побережья Суматры британская ПЛ искала пригодный сампан (азиатская лодка-плоскодонка), нужный для выполнения разведзадания. Сампан нашли. В нем было пять туземцев-сборщиков кокосов и обезьяна, обученная лазить за кокосами на дерево. Всю команду сампана сняли и перевели на ПЛ. Люди то перешли к британцами на борт без проблем, а вот с обезьяной пришлось повоевать, так как она отказалась сдаваться британцами в плен. Так что подводники Его Величества побегали за ней по сампану. Может даже кого-то из них покусали.
#rn#sub