Найти - Пользователи
Полная версия: Как запустить bash из скрипта Python
Начало » Python для новичков » Как запустить bash из скрипта Python
1
satfan
IDLE (Python 3.7 32-bit) Win 7
Есть такой скрипт:
 #!/bin/sh
#Преобразует ваш enigma2 userbouquet в плейлист.m3u
cd /tmp ; find -maxdepth 1 -type f -name "userbouquet.*tv" | sed 's/^..//' > list
[ ! -s list ] && echo "Нет ни одного файла userbouquet.xxx.tv в папке /tmp" && exit
while [ -s list ] ; do
    urbt=`cat list | head -n1` ; sed -i "1d" list ; echo -n "$urbt "
    grep "http" $urbt | sed -e "s/.*http/http/g" | if ! grep -qs ':' ; then
        sed '/http\|https\|DESCRIPTION/!d' -i $urbt
        sed -e 's/.*http/http/g; s/:.*//g; s/%3a/:/g; s/DESCRIPTION/EXTINF:-1, /g; s/  / /g' -i $urbt
    else
        sed '/http\|https/!d' -i $urbt
        sed -e 's/.*http/http/g; s/:/\n#EXTINF:-1,/1; s/%3a/:/g' -i $urbt
    fi
    echo "#EXTM3U url-tvg="https://iptvx.one/epg/epg.xml.gz" deinterlace=1 aspect-ratio=None" > shift
    cat $urbt | awk 'NR%2==0 {print $0; print p} {p=$0}' >> shift
    name=`echo "$urbt" | sed -e 's/userbouquet.//;s/.m3u//;s/.tv$//'`
    mv shift "$name".m3u ; echo ">> $name.m3u" ; rm $urbt ; sleep 1
done
echo '' ; echo "Готово . Можно забирать в папке /tmp"
Как его запустить на моём ПК ?
doza_and
satfan
Как его запустить на моём ПК ?
Простой ответ: НИКАК
Он выполняется при помощи интерпретатора sh и использует утилиты sed,find, и т.п.. А windows7 операционная система импотент. Ничего из перечисленного в ней нет.
Сложный ответ:
Вы тем или иным способом можете запустить другую ОС на вашем ПК.
Варианты с поддержкой sh и прочего:

1. Поставить второй системой чтото типа ubuntu
2. Установить плеер виртуальных машин и накатить на виртуалку см. пункт 1.
3. Поставить msys2
4 Проапгрейдиться до десятки. ходят непроверенные слухи что там есть bash

Очень сложный ответ.

Скрипт довольно примитивный, его можно на питоне переписать. Помоему получится короче и понятнее.

Для этого всего навсего надо изучить документацию по языкам программирования утилит bash, sed,grep,awk,find изучить регулярные выражения и чуток со всем этим потренироваться.

После этого вы минут за 10 перепишете это на питон и сможете перейти к установке второй ОС поскольку питона в windows7 тоже нет.
PEHDOM
satfan ответ между простым и сложным:
Смотрите в сторону cygwin или minGW(msys) учитывая что скрипт примитивный возможно в них он запуститься без допиливания напильником.
Остальное требует много телодвижений см. совты doza_and
py.user.next
satfan
Как его запустить на моём ПК ?
Поставь в винду VirtualBox, в VirtualBox поставь Linux, потом директории той Linux подключи к винде. Потом в директорию /tmp виртульной системы закачай файлы для обработки, а в директорию /home/пользователь виртуальной системы закачай скрипт. Потом выполни скрипт из директории /home/пользователь виртуальной системы. (Имя пользователя задаётся при установке системы обычно. У всех оно разное. У меня - guest, чтобы максимально абстрагировать и ни с чем не перепутать.)

Это совет в том плане, что тебе изредка нужно выполнять скрипты из других систем. В винду ставить оболочку нет смысла, так как скрипт (этот и другой в перспективе) требует наличия дерева директорий Linux в нативном виде, а в винде его не воссоздашь (бывают не только пути, бывают ещё права и тому подобное, где-нибудь что-нибудь да вылезет и скрипт не сработает).

Скрипт хоть и слабый, конечно, но все плохие скрипты переписывать не будешь. Иногда нужно что-то просто запустить один раз, даже если оно на соплях только работает, и потом забыть про это навсегда. Для получения опыта можно и переписать его, конечно. Также бывают скрипты с ошибками, которые тоже есть смысл переписывать, чтобы сразу очистить от всех ошибок. Но начать лучше с простого запуска какого-то абстрактного скрипта в том окружении, которое он и ожидает.
AD0DE412
http://unxutils.sourceforge.net/
зы правда непонятно на сколько оно живое
satfan
Всем кто ответил огромное спасибо.
У меня старый ПК, только осенью планирую купить новый.
Виртуалку не потянет.
Идеальный вариант переписать этот скрипт на Python 3.
Я только начал изучать питон. Поэтому знаний не хватает.
————–
Есть скрипт офлайн с обратной конвертацией. Но он на javascript.
Если бы его преобразовать, то было бы супер.
PEHDOM
satfan
Я только начал изучать питон. Поэтому знаний не хватает.
Не партесь ваш скрипт нормально отработает под cygwin.

cygwin ставится за 5 минут. папка /tmp это c:\cygwin64\tmp\ где c:\cygwin64 папка куда установлен cygwin. Со временем перепишете на пайтон, если захотите.
satfan
Спасибо PEHDOM
Установил cygwin
Разобрался всё Ок.


This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB