Termux API + Bash 2 часть
Termux, please
Всем привет, в прошлой части мы с вами более менее разобрались с тем, как можно комбинировать bash scripting и Termux API. В этой части мы с вами сделаем хоть один полезный скрипт.

Bash - это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, который читать команды из файла, который называется скриптом или сценарием.
Termux API - этот аддон предоставляет функциональные возможности устройства в виде API для программ командной строки в Termux.
Итак, для начала сформулируем техзадание:
Приложение должно после запуска помещать в буфер обмена случайную строку из файла и оповещать об этом в всплывающим сообщением.
Давайте составим план работы скрипта:
- Запустить подпрограмму
- Передать результат работы подпрограммы в буфер обмена
- Вывести всплывающее сообщение
Теперь как говорится, назовем все своими именами:
- папка rndstr в домашней директории
- source — файл из которого будем брать строки
- rndstr.py — подпрограмма выводящая в консоль случайную строку из файла source
- rndstr.sh — файл скрипта
Первые два пункта плана скрипта можно объединить конвейером, в итоге, используя Termux:API мы получаем:
#!/bin/bash python ~/rndstr/rndstr.py | termux-clipboard-set # 1 и 2 пункты плана работы termux-toast "OK" # 3 пункт. Выводим всплывающее сообщение "ОК"
В файл source вы можете поместить любой текст логически разделенный на строки:
Листинг файла sourse
Теперь нам остается создать подпрограмму извлекающую случайную строку из файла source.
Как всегда - распишем алгоритм работы подпрограммы:
- Открываем файл source
- Считаем количество строк в открытом файле
- Закрываем файл (нечего его лишнее время открытым держать)
- Генерируем случайное целое число в пределах количества строк файла source
- Открываем файл source
- Выводим строку под номером сгенерированного числа
- Закрываем файл
Сначала для удобства, мы распишем алгоритм наш на яп питон:
import random # импортируем для генерации случайных чисел import os # для получения пути path = os.path.abspath(__file__) # получаем прямой путь до файла rndstr.py path = os.path.dirname(path) # преобразуем в путь до директории path = path + '/source' # преобразуем в путь до файла source f = open(path) # открываем файл i = 0 # обнуляем счетчик for str in f: i+=1 # считаем строки файла f.close() # закрываем файл j = int(round(i * random.random())) # генерируем целое случайное число от 0 до i f = open(path) # открываем файл i = 0 # обнуляем счетчик for str in f: # перебираем строки из файла if i == j: # если счетчик строк равен сгенерированному числу print (str, end='') # выводим строку без перехода на новую break # выходим из цикла i+=1 # увеличиваем счетчик на 1 f.close() # закрываем файл
После того как файлы созданы и записаны, нужно дать права на исполнение файлу rndstr.sh, и создать alias для быстрого запуска.
alias rnst="~/rndstr/rndstr.sh"
Теперь введя в терминале rnst мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.
Вот мы и написали хоть что-то полезное. Относительно полезное.

- 📺 UnderMind - Наш YouTube канал
- ✅ [YT]UnderMind - Наш основной TG канал
- 🏴☠️ https://t.me/joinchat/AAAAAEmM-bkL9Pv7KLyL7w - Приватный канал
- 🛒 HackAli - cамые интересные хакерские товары с Aliexpress!
- 👨💻 Termux, please - 100% termux
- 🐧 Linux, please - всё о Linux
- 💭 https://t.me/UnderChats - Чат
- ⚡️ Мы в Yandex.Zen - Лучший контент со всех наших каналов