Termux API + Bash 2 часть

Termux API + Bash 2 часть

Termux, please

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

Bash - это командный процессор, работающий, как правило, в интерактивном режиме в текстовом окне, который читать команды из файла, который называется скриптом или сценарием.

Termux API - этот аддон предоставляет функциональные возможности устройства в виде API для программ командной строки в Termux.

Итак, для начала сформулируем техзадание:

Приложение должно после запуска помещать в буфер обмена случайную строку из файла и оповещать об этом в всплывающим сообщением.


Давайте составим план работы скрипта:

  1. Запустить подпрограмму
  2. Передать результат работы подпрограммы в буфер обмена
  3. Вывести всплывающее сообщение

Теперь как говорится, назовем все своими именами:

  • папка 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.

Как всегда - распишем алгоритм работы подпрограммы:

  1. Открываем файл source
  2. Считаем количество строк в открытом файле
  3. Закрываем файл (нечего его лишнее время открытым держать)
  4. Генерируем случайное целое число в пределах количества строк файла source
  5. Открываем файл source
  6. Выводим строку под номером сгенерированного числа
  7. Закрываем файл


Сначала для удобства, мы распишем алгоритм наш на яп питон:


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 мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.

Вот мы и написали хоть что-то полезное. Относительно полезное.

НАШИ ПРОЕКТЫ


Report Page