/
jenyapng
/
project-bash
Обзор
Документация
Войти
/
jenyapng
/
project-bash
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
task-2/script-13.sh
76 строк
2 KB
jenyapng
first_commit
11 авг 2026, 16:22
11 авг 2026, 16:22
9ea1476
Код
Авторство
О чём код?
#!/bin/bash validate_args() { # Объединенная проверка для length if ! [[ "$length" =~ ^[0-9]+$ && "$length" -gt 0 ]]; then echo "Ошибка: длина должна быть положительным числом." >&2 exit 1 fi if [[ -z "$start" ]]; then echo "Ошибка: начальная позиция не задана." >&2 show_help exit 1 fi if ! [[ "$start" =~ ^[0-9]+$ ]]; then echo "Ошибка: начальная позиция должна быть неотрицательным числом." >&2 exit 1 fi if [[ ${#phrases[@]} -eq 0 ]]; then echo "Ошибка: не указаны фразы для обработки." >&2 show_help exit 1 fi } show_help() { echo "Использование: $0 --start <начальная_позиция> --length <длина> --phrases <фразы>" echo "Пример: $0 --start 2 --length 3 --phrases 'Привет' 'Мир'" } # Обработка аргументов phrases=() while [[ $# -gt 0 ]]; do case "$1" in --start) start="$2" shift 2 ;; --length) length="$2" shift 2 ;; --phrases) shift while [[ $# -gt 0 && ! "$1" =~ ^-- ]]; do phrases+=("$1") shift done ;; --help) show_help exit 0 ;; *) echo "Ошибка: неизвестный параметр '$1'" >&2 show_help exit 1 ;; esac done validate_args result="" for ((i = 0; i < ${#phrases[@]}; i++)); do phrase="${phrases[$i]}" pos=$((start + i)) if [[ "$pos" -lt "${#phrase}" ]]; then result+="${phrase:pos:length}" fi done echo "$result"