Быстрый старт за 5 минут
Если ты хочешь изучать Bash, рекомендуем эту книгу на Amazon: https://amzn.to/3WQnERX (это внешняя партнёрская ссылка на Amazon)
Linux BASH: самоучитель по программированию
Это краткое руководство по Bash на Linux. За несколько минут ты научишься писать простые скрипты и программы. Этот материал также поможет тебе быстрее разобраться с учебниками по программированию.
Как обычно, всё “в двух словах”.
1. Переменные
Переменные хранят данные, которые ты используешь в своём скрипте.
server=“irc.IRC-Mania.com” port=6667
2. Echo
Выводи текст с помощью echo.
echo “Verbindung zu $server auf Port $port herstellen…“
3. Выполнение команд
Используй обратные кавычки или $() для запуска команд.
4. If-Else
Проверяй условия с помощью if.
5. Циклы
For-цикл
Проходи по списку серверов.
While-цикл
Повторяй, пока условие не выполнится.
6. Функции
Определи переиспользуемые блоки кода.
connect_to_server “irc.irc-mania.com”
7. Case
Ветвись в зависимости от входных данных.
8. Массивы
Храни несколько значений в массиве.
channels=("general" "help" "random")
echo "Присоединяюсь к ${channels[0]}."
9. Чтение и запись файлов
Чтение
Читай файл строку за строкой.
10. Ввод и вывод
Перенаправление вывода
Сохраняй результат команды.
Pipes
Соединяй команды через pipe.
echo "Hello IRCWorld" | tr 'a-z' 'A-Z'
11. Управление процессами
Фоновые процессы
Запусти команду в фоне.
Завершение процесса
Останови процесс.
kill %1
12. Отладка
Используй set -x для отладки.
set -x
connect_to_server "irc.example.com"
set +x
13. Аргументы командной строки
Используй входные аргументы в своём скрипте.
14. Cron Jobs
Автоматизируй скрипты через Cron.
0 0 * * * /path/to/irc_script.sh
Теперь ты знаешь основные инструменты Bash-программирования. Давай перейдём к практическим примерам, чтобы сразу начать работать.
Практические примеры с Linux и IRC
1. Автоматический вход и отправка сообщения в IRC-канал
Этот скрипт автоматически подключается к IRC-серверу, входит в канал и отправляет сообщение.
#!/bin/bash
server="irc.example.com"
port=6667
nickname="MeinNick"
channel="#meinchannel"
message="Hallo, dies ist eine automatische Nachricht!"
exec 3<>/dev/tcp/$server/$port
echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3
sleep 2
echo "PRIVMSG $channel :$message" >&3
2. Мониторинг IRC-канала с автоматическим ответом
Этот скрипт следит за сообщениями в IRC-канале и автоматически отвечает на определённые ключевые слова.
#!/bin/bash
server="irc.example.com"
port=6667
nickname="BotNick"
channel="#meinchannel"
exec 3<>/dev/tcp/$server/$port
echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3
while IFS= read -r line <&3; do
echo "$line"
if [[ "$line" == *"hello"* ]]; then
echo "PRIVMSG $channel :Hallo! Wie kann ich helfen?" >&3
fi
done
3. Сбор статистики IRC-канала
Собирай информацию об активности в IRC-канале (например, количество сообщений от каждого пользователя) и сохраняй в файл.
#!/bin/bash
server="irc.example.com"
port=6667
nickname="StatBot"
channel="#meinchannel"
statsfile="channel_stats.txt"
exec 3<>/dev/tcp/$server/$port
echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3
declare -A user_stats
while IFS= read -r line <&3; do
if [[ "$line" =~ ^:([^!]+)! ]]; then
user="${BASH_REMATCH[1]}"
((user_stats["$user"]++))
fi
done
Если ты хочешь изучать Bash, рекомендуем эту книгу на Amazon:
https://amzn.to/3WQnERX (это внешняя партнёрская ссылка на Amazon)



