TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.1K subscribers
Post #1673 4.47K
Почему Zsh такой крутой 😍

В стандартных шеллах вроде bash, чтобы поработать со строками, обычно приходится пайпить переменные в sed, basename и прочие утилиты. В Zsh эта логика встроена прямо в синтаксис расширения переменных.

Да, это ломает переносимость скриптов из-за несовместимости с POSIX. Но для интерактивной работы и личных конфигов это на порядок быстрее и удобнее.

Самый полезный модификатор? :r (root) — отрезает расширение файла.

Синтаксис такой: ${file:r}

Допустим, нужно передать имя файла (game.cpp) и чтобы итоговый бинарник назывался так же (game), не прописывая имя дважды.

Используем ${1:r}, чтобы автоматически убрать расширение из аргумента. Пример функции в Zsh:
function grun() {
# $1 это "game.cpp"
# ${1:r} станет "game"

g++ -Wall -std=c++17 "$1" -o "${1:r}" && ./"${1:r}"
}


Запуск grun main.cpp скомпилирует и сразу запустит main – одним махом.

Как только начинаешь активно использовать модификаторы, назад уже не хочется.

Ещё полезные модификаторы:

:e — получить только расширение

:a — получить абсолютный путь

:h — получить имя родительской директории

:t — получить basename

И да, снова: переносимость скриптов ограничена из-за несовместимости с POSIX.

👉 DevOps Portal
  • 👍 9
  • ❤ 7
  • 🔥 4
  • 🌚 3
  • 🌭 1
More from @loose_code
  1. Sep 26, 2026Docker 101: пробрасываем порт контейнера, чтобы открыть приложение с хоста Новое практичес…
  2. Sep 25, 2026Автоматизация платформы не отбирает у вас интересные задачи. Она забирает рутину. Deckhous…
  3. Sep 25, 2026Этот кейс показывает, как мигрировать с хрупкой инфраструктуры на базе EC2 на AWS EKS с Gi…
  4. Sep 25, 2026ИИ-агенты теперь могут работать как отдельные участники команды в GitLab В SourceCraft поя…
  5. Sep 25, 2026Анатомия Terraform-проекта До сих пор путаетесь в Terraform-файлах и структуре директорий?…
  6. Sep 24, 2026На Stepik вышла программа «DevOps с нуля: от Linux до Kubernetes» Это комплексная программ…
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 →