#1 Bash. Создание файлов. Взаимодействие с пользователем. 3 вида цикла for. RANDOM. regex
getopts: как писать CLI-утилиты с флагами без внешних библиотек
getopts — это встроенный в любой POSIX-совместимый Linux/Unix-shell мини-парсер аргументов. Один shebang — и у вас CLI-утилита без единой внешней зависимости. В статье рассмотрим, как выжать из getopts максимум, где он спотыкается и когда пора переехать на getopt или Argbash. Минус — лишь короткие флаги и отсутствие родной поддержки --long-option. Но и это решаемо. #!/usr/bin/env sh
set -euo pipefail
IFS='
'
usage() {
cat <<EOF
Usage: ${0##*/} [-a] [-b ARG] file...
-a : включить дополнительный режим
-b ARG : передать аргумент
EOF
exit 2
}
# двоеточие в начале → тихий режим ошибок
while...
Скрипт, который не ломается на втором запуске
Бывало такое: запускаете скрипт настройки сервера, а он орёт «пакет уже установлен» и падает? Или молча дублирует конфиги, а потом всё едет? Идемпотентность - это когда повторяете одно и то же действие много раз, а результат не меняется. Как выключатель: щёлкайте сколько угодно - свет либо включится, либо выключится. Без дыма и искр. ➤ Три функции, которые спасут ваши нервы Кладёте в начало любого скрипта - и спите спокойно: #!/bin/bash set -euo pipefail # Ставим пакет, только если его нет ensure_pkg() { dpkg -s "$1" &>/dev/null && { echo "$1 уже стоит"; return 0; } echo "Ставим $1..." apt-get...
10 настроек Claude Code, до которых большинство разработчиков не доходит
Ранее я писал про утечку исходного кода Claude Code. 512 000 строк, KAIROS, упоминания нерелизнутых моделей Opus 4.7 и Sonnet 4.8. Так вот. В актуальном Claude Code уже есть Opus 4.7. Ровно как и было в leaked-коде. Вместе с ней появился новый уровень /effort xhigh - это мы сегодня тоже разберём. В первой части я показал что Claude Code умеет из коробки. Типовой сценарий после этого: "понял, установил, пользуюсь". И дальше тот же потолок что у всех - Claude работает быстро, но как-то странно. Отвечает...