TGViewer
Bash Days | Linux | DevOps Bash Days | Linux | DevOps @bashdays · 23.6K subscribers
Post #1269 7.86K
Вопрос с LF, думаю всем полезно будет.
ㅤ
Пишу пайплайн, есть такая конструкция:

platform=$(uname -m)
docker run --platform linux/arm64


Я бы хотел, чтобы параметр --platform linux/arm64 подставлял в том случае, если архитектура платформы == arm64, в других случаях этот параметр подставлять не нужно.

Делаю так, но получается какая-то хуйня:

platform=$(uname -m)
docker run ${platform/arm64/--platform linux/arm64}


Короче смотри. Задачку можно решить несколькими способами.

Способ 1. Заточен под Bash:

platform=$(uname -m)
docker run $([[ $platform = arm64 ]] && echo "--platform linux/arm64")


Этот способ не сработает, если код запустится в /bin/sh, потому что оно не POSIX. Тут уже смотри под чем все это будет запускаться.

Тут можешь почитать чем отличаются [[ ]] от []
А тут что такое POSIX


Способ 2. Универсальный:

platform=$(uname -m)
docker run $( [ "$platform" = "arm64" ] && echo "--platform linux/arm64" )


На 100 % POSIX-совместим. По функционалу эти способы идентичны.

Ну и по итогу имеем:

[[ ... ]] — это расширенная bash-версия, безопаснее и гибче (поддержка pattern, безопасность кавычек при пробелах и пустых строках, поддежка логики с &&)

[ ... ] — POSIX-совместимая, более строгая и требующая аккуратности с кавычками.

Ну и твои варианты приветствуются, поделись в комментах, глядишь что-то маст-хевное у тебя в загашнике есть.

🛠 #bash #pipeline
—
💬 Bashdays 📲 MAX 🌐 LF 🔵 Blog
More from @bashdays
  1. Sep 25, 2026ИИ-агент может быть у каждого: создать персонального помощника можно без настройки серверо…
  2. Sep 25, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  3. Sep 24, 2026Post #1565
  4. Sep 23, 2026Здрасти приехали, решил я в кой-то веке воспользоваться услугами Codex, создал аккаунт, по…
  5. Sep 22, 2026Всем привет, с вами TagdTagd. Сегодня опять поднимем тему архивов, но немного с другой сто…
  6. Sep 15, 2026Всем привет, с вами TagdTagd. И это вторая часть. Практическая. С первой частью можешь озн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →