🔥 Циклы в Bash: от каменного века до современности
Эй, мастер итераций!
Всё ещё пишешь
🦕 Каменный век:
🏛️ Античность (seq):
🏭 Индустриальная эра (Bash 3+):
🚀 Современность (C-style):
💥 Высший пилотаж — оператор запятая:
💡 Что выбрать:
- {1..10} — для простых диапазонов
- C-style — для сложной логики
- seq — для обратной совместимости
Все примеры выводят:
Больше никаких длинных перечислений! Используй современный синтаксис.
____________________
Дополнительный материал:
🧠 - Централизованное управление пользователями в Linux: Гармония преимуществ и вызовов
🧠 - Создание учетной записи пользователя в Linux: Пошаговое руководство
🧠 - Мастер-класс по созданию системных аккаунтов в Linux
#bash_guide #bash #loops #scripting #Linux #programming #for
Эй, мастер итераций!
Всё ещё пишешь
for i in 1 2 3 4 5? Покажу эволюцию циклов в Bash — от динозавров до современного синтаксиса!🦕 Каменный век:
for a in 1 2 3 4 5 6 7 8 9 10
do
echo -n "$a "
done
🏛️ Античность (seq):
for a in `seq 10`
do
echo -n "$a "
done
🏭 Индустриальная эра (Bash 3+):
for a in {1..10}
do
echo -n "$a "
done
🚀 Современность (C-style):
LIMIT=10
for ((a=1; a <= LIMIT; a++))
do
echo -n "$a "
done
💥 Высший пилотаж — оператор запятая:
# Инкремент двух переменных одновременно!
for ((a=1, b=1; a <= LIMIT; a++, b++))
do
echo -n "$a-$b "
done
# Вывод: 1-1 2-2 3-3 4-4 5-5...
💡 Что выбрать:
- {1..10} — для простых диапазонов
- C-style — для сложной логики
- seq — для обратной совместимости
Все примеры выводят:
1 2 3 4 5 6 7 8 9 10Больше никаких длинных перечислений! Используй современный синтаксис.
____________________
Дополнительный материал:
🧠 - Централизованное управление пользователями в Linux: Гармония преимуществ и вызовов
🧠 - Создание учетной записи пользователя в Linux: Пошаговое руководство
🧠 - Мастер-класс по созданию системных аккаунтов в Linux
#bash_guide #bash #loops #scripting #Linux #programming #for
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🌐🔧 ""Централизованное управление пользователями в Linux: Гармония преимуществ и вызовов"" 🤝💼
Привет, администраторы Linux и строители цифровых сообществ! Сегодня мы поговорим о том, как централизованное управление пользователями в Linux открывает новые горизонты…
Привет, администраторы Linux и строители цифровых сообществ! Сегодня мы поговорим о том, как централизованное управление пользователями в Linux открывает новые горизонты…
👍17
🔥 Забудь про $1 $2 $3: умные опции через getopts
Привет, архитектор CLI!
Надоело парсить аргументы через позиционные параметры? Делаем профессиональные флаги как в настоящих утилитах!
🔧 Базовый шаблон с getopts:
💡 Как работает:
-
-
-
🚀 Примеры вызова:
📌 Бонус — импорт функций:
Теперь твои скрипты выглядят как настоящие Linux-утилиты!
____________________
Дополнительный материал:
🧠 - Командный центр Linux: Ваше руководство по базовым консольным программам
🧠 - Защитный барьер Linux: Как система обеспечивает безопасность пользователей и групп
🧠 - Мастер-класс по консольным программам Linux: Разбираемся с UID и GID
#bash_guide #bash #getopts #cli #scripting #Linux #arguments
Привет, архитектор CLI!
Надоело парсить аргументы через позиционные параметры? Делаем профессиональные флаги как в настоящих утилитах!
🔧 Базовый шаблон с getopts:
#!/bin/bash
# Проверка аргументов
if [ $# -eq 0 ]; then
echo "Usage: $(basename $0) -mnopqrs"
exit 1
fi
# Парсинг опций
while getopts ":mnopq:rs" Option; do
case $Option in
m ) echo "Опция -m активна";;
n|o ) echo "Опция -$Option активна";;
p ) echo "Опция -p активна";;
q ) echo "Опция -q с аргументом: $OPTARG";;
r|s ) echo "Опция -$Option";;
* ) echo "Неверная опция";;
esac
done
# Сдвиг к не-опциям
shift $(($OPTIND - 1))
💡 Как работает:
-
:mnopq:rs — строка опций (: после q = требует аргумент)-
$OPTARG — значение для опции с аргументом-
$OPTIND — индекс следующего аргумента🚀 Примеры вызова:
./script.sh -m -n
./script.sh -mn # можно слитно!
./script.sh -q "значение"
./script.sh -mnop -q test
📌 Бонус — импорт функций:
# Загружаем общие функции
source /path/to/common_functions.sh
# или
. ./config.sh
Теперь твои скрипты выглядят как настоящие Linux-утилиты!
____________________
Дополнительный материал:
🧠 - Командный центр Linux: Ваше руководство по базовым консольным программам
🧠 - Защитный барьер Linux: Как система обеспечивает безопасность пользователей и групп
🧠 - Мастер-класс по консольным программам Linux: Разбираемся с UID и GID
#bash_guide #bash #getopts #cli #scripting #Linux #arguments
Telegram
Linux Skill - Освой Linux c нуля до DevOps
🌟🐧 ""Командный центр Linux: Ваше руководство по базовым консольным программам"" 🛠️📚
В мире Linux, где каждая команда открывает новые возможности для управления и анализа системы, важно иметь под рукой надежный справочник. Вот почему было решено собрать все…
В мире Linux, где каждая команда открывает новые возможности для управления и анализа системы, важно иметь под рукой надежный справочник. Вот почему было решено собрать все…
👍13
🔧 20+ переменных Bash, которые ты точно не использовал
Привет, повелитель скриптов!
Видел скрипты, где пути и настройки вбиты намертво? А потом ломаешь голову, почему они не работают на другой машине. Bash уже всё придумал за тебя — используй зарезервированные переменные.
📂 Навигация и окружение
$DIRSTACK — Содержимое вершины стека каталогов
$OLDPWD — Прежний рабочий каталог
$PATH — Путь поиска программ
$HOME — Домашний каталог пользователя
👤 Информация о пользователе
$UID — Содержит реальный идентификатор, который устанавливается только при логине
$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя
$GROUPS — Массив групп к которым принадлежит текущий пользователь
🖥️ Информация о системе
$HOSTNAME — hostname машины
$HOSTTYPE — Архитектура машины
$OSTYPE — Тип ОС
⚙️ Работа со скриптами и функциями
$EDITOR — Текстовый редактор по-умолчанию
$FUNCNAME — Имя текущей функции в скрипте
$SECONDS — Время работы скрипта (в сек.)
$$ — PID самого скрипта
$PPID — Идентификатор родительского процесса
$! — PID последнего запущенного в фоне процесса
$? — Содержит код завершения последней команды
📝 Работа с параметрами
$# — Общее количество параметров переданных скрипту
$* — Все аргументы переданные скрипту (выводятся в строку)
$@ — Тоже самое, что и предыдущий, но параметры выводятся в столбик
🔍 Дополнительные переменные
$LC_CTYPE — Внутренняя переменная, которая определяет кодировку символов
🔖 Сохрани шпаргалку — пригодится в каждом скрипте!
#Linux_Mastery #bash #scripting #linux #automation #devops #sysadmin
Привет, повелитель скриптов!
Видел скрипты, где пути и настройки вбиты намертво? А потом ломаешь голову, почему они не работают на другой машине. Bash уже всё придумал за тебя — используй зарезервированные переменные.
📂 Навигация и окружение
$DIRSTACK — Содержимое вершины стека каталогов
$OLDPWD — Прежний рабочий каталог
$PATH — Путь поиска программ
$HOME — Домашний каталог пользователя
👤 Информация о пользователе
$UID — Содержит реальный идентификатор, который устанавливается только при логине
$EUID — Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя
$GROUPS — Массив групп к которым принадлежит текущий пользователь
🖥️ Информация о системе
$HOSTNAME — hostname машины
$HOSTTYPE — Архитектура машины
$OSTYPE — Тип ОС
⚙️ Работа со скриптами и функциями
$EDITOR — Текстовый редактор по-умолчанию
$FUNCNAME — Имя текущей функции в скрипте
$SECONDS — Время работы скрипта (в сек.)
$$ — PID самого скрипта
$PPID — Идентификатор родительского процесса
$! — PID последнего запущенного в фоне процесса
$? — Содержит код завершения последней команды
📝 Работа с параметрами
$# — Общее количество параметров переданных скрипту
$* — Все аргументы переданные скрипту (выводятся в строку)
$@ — Тоже самое, что и предыдущий, но параметры выводятся в столбик
🔍 Дополнительные переменные
$LC_CTYPE — Внутренняя переменная, которая определяет кодировку символов
🔖 Сохрани шпаргалку — пригодится в каждом скрипте!
#Linux_Mastery #bash #scripting #linux #automation #devops #sysadmin
👍8🔥3