Linux: bash, получить случайный символ из заранее заданной строки

Преамбула

Задана, например, такая строка:

PGSTRING='#$%@!?0'

Задача — получить из строки с паттерном случайный символ.

Bash: получаем длину строки

STRLEN=`expr length "$PGSTRING"`

Если вывести переменную STRLEN для строки выше, будет следующее:

Len: 7

expr есть в coreutils, так что должен быть практически везде

Bash: получаем случайное число из заданного диапазона

Получить случайное число из заданного диапазона можно командой shuf, например:

shuf -i x-x1 -n1

где:
x-x1 — диапазон чисел
-nXX — количество цифр в числе.

Получаем случайное число:

RNUM=`shuf -i 1-$STRLEN -n1`

Вывод:

R Num: 3

Получаем случайный символ из строки с паттерном

Отправляем строку на консоль:

echo -e -n "$PGSTRING"

И перенаправляем команде cut:

Для того, чтобы вырезать командой cut символ, или группу символов из строки, нужно указать первый и последний символ. Например:

cut -c1-5

Применяем все вышесказанное:

RCHAR=`echo -e -n "$PGSTRING"|cut -c$RNUM-$RNUM`

Вывод:

Char: %

Можно объединить все это в функцию

getrandchar() #$1 - pattern_string
{
    STRLEN=`expr length "$1"`
    RNUM=`shuf -i 1-$STRLEN -n1`
    RCHAR=`echo -e -n "$1"|cut -c$RNUM-$RNUM`
}

Использование:

getrandchar $PGSTRING

Копия функции на PasteBin

Новый сборник Flash-игр от Лехи.

Все пересобрано в EXE, совместимо со всеми Windows, начиная с XP

Аркады

— AC — Дави инопланетных тараканов!
— ALIEN — Инопланетянин сбегает из зоны 51. Мочи земляшек!
— ARC — Платформер, где на тебя набигают Смурфики
— BUCK — Симулятор собаки
— BUTCH — Играешь ха разумный хищный гриб, жрешь насекомых
— CANDY — Платформер, надо собирать конфетки
— CAT2 — Надо спасать котиков
— catchacrab[1] — Ловля крабов
— EscapeFromElmStreet[1] — Бродилка по мотивам «Кошмара на улице Вязов»
— EXP — Дави пешеходов автомобилем
— fixturkey[1] — Зажарь индюка!
— GAME3 — Платформер авиационный
— gladiator — Симулятор гладиатора
— HULK — Симулятор халка
— LINSE — Инопланетянин гигантской лупой сжигает город и людишек
— marspatrol — Марсианский патруль
— mofunzone-com-sinjid[1] — Играешь за самурая
— mofunzone-com-tacticscore[1] — Мини-версия «Героев меча и магии»
— monsterbash — Типа «пришиби крота» только с монстрами
— MS — Симулятор акулы
— nu_pagadi — «Ну, погоди»
— PACMAN — Пакман
— PAR — Простенький платформер с паранормальной атмосферой
— Paranormality[1] — Простенький платформер с паранормальной атмосферой (еще одна версия)
— PM — Еще один Пакман
— POL — Симулятор толстяка
— polar_rescue — Платформер за пингвина
— PREDKI — Уберись в комнате, пока родители не явились
— Ronin-SpiritOfSword[1] — Симулятор самурая
— SB — Проведи мыльный пузырь через лабиринт
— SC — Управляй НЛО
— SHEEP — Надо загнать овец в загон
— SHUTTLE — Ебанутая скорая помощь! Дави всех нахуй!!!
— SMU — Лови пирожки и прочие кондитерские изделия
— SonicLostInMarioWorld[1] — Платформер
— SSS — Управляй НЛО другая версия
— ST — Файтинг палочных человечков
— StickRPG[1] — Двумерная РПГ
— stroiteli — Кидайся шариками с водой с моста!
— teddyball — Волейбол игрушечных медведей, можно играть вдвоем или с компьютером
— TheA&DEngine[1] — AD&D с компьютером
— UltimateFlashSonic — Sonic
— war_in_iraq — Мочи Ирак!
— WirtuaLife[1] — Виртуальная жизнь
— Wolf3d[1] — Симулятор волка в 3D, от первого лица. Жри сраных коров!

Драки

— BF — Бусидо файтинг (простой файтинг)
— dronetour — Файтинг проволочных человечков
— Fight4 — Файтинг палочных человечков
— MORDA — Для снятия стресса. Набей иорду начальнику.
— NP — Ninja Power
— portalfighter — Файтинг на двоих
— SILAT — Каратэ
— ST — Набигают!

Классические

— Рыбалка

Любимые (по мнению составителя сборника)

— Leshka_na_rabote — Беспредел в офисе
— SIMGIRLS — Симулятор знакомства
— tc — Tactic Core

Логические

— Bull — Быки-коровки
— HEXXAGON — Гексагон. Заполни своим цветом все поле.
— PUZZLE — Пятнашки

Разное

— ALISSA — Раздень Алису Милан
— holio1_rus[1] — Симулятор развода девушки
— Jeu_Onamis_01 — Головоломка (странная)
— slipknot[1] — хз
— Squares2 — хз

Ролевые

— Tactic Core

Игры со скримерами

Нет описаний 🙂

Скачать

С MEGA.NZ (7ZIP, 68 Mb)

Сборник составил Leha Silent

(L) tolik-punkoff.com, 2023

Сферический «русский мир» в русском мире.

Отметка в паспорте прибавила уважения в коллективе, как и членство в партии, создала видимость нормы.

Из дневников маньяка Сергея Сливко

Почти то, на чем акцентирует внимание Витухновская. Она не права только в одном, как и любой маськовский «политег». Чтобы разрушить маньячество — нужно расчленить маньяка на много кусочков. До 24-го февраля еще был иной вариант решения проблемы, а сейчас этого уже не будет.

Успокойтесь, агенты и адепты маськвы. Никто вас не будет специально расчленять. «Ваш «Москвич» развалится сам по себе».

Ода роскомнадзору и нашей блокировке.

КАЛуга-Кали-Юга заблокировала нас,
Эй, КАЛуга-Кали-Юга, на, держи
         жуй ананас!
"А на нас великая миссия возложена!"
Говорил "Ананас"*, царь один.
Но царя того расстреляли,
Как сменился глобальный админ.

Так и ты подумай, КАЛ-уга,
Стоит жить ли сейчас так тебе.
Ведь придет же потом Кали-Юга...

И потомки найдут ананас...
В твоей грязной вонючей пизде!

*Среди военных у котоубийцы Николая v 2.0 была кличка «Ананас», именно из за его фразы «А на нас возложена великая миссия…»

Наконец-то нас заблокировали в ГОРФ, это, конечно, не орден, как у Латыниной (иноагент), не погоны генеральские с аксельбантом и лампасами, как у Невзорова (уголовное дело), но все равно очень приятно. Медалька.

Надо, кстати, заказать ИРЛ и разослать всем сопречукнутым!