Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Zobrazení průběhu scriptu na obrazovce (echo)  (Přečteno 5901 krát)

Pavel D

  • Návštěvník
  • Příspěvků: 32
Zobrazení průběhu scriptu na obrazovce (echo)
« kdy: 27 Října 2013, 06:41:08 »
Napsal jsem si script, který ukládá záznamy pořízené set top boxem .ts do jiného kontejneru .mkv (z důvodů přehrávání televizí). Vše funguje dobře, ale průběh scriptu se mi nezobrazuje na obrazovce.
Když příkaz zadám do console, tak se průběh přeukládání v okně console zobrazuje.
Jedná se o Linux Puppy 5.0.1. Grafické prostředí JWM, console urxvt.
Když napíšu script
#!/bin/bash
echo "Hello World"
tak se mi taky nezobrazí na obrazovce.
Hledal jsem na webu, ale všude je vždy napsáno, že stačí napsat na začátku řádku echo.
Mohl by někdo poradit co ještě nastavit a jak to zprovoznit ?
Předem děkuji.

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #1 kdy: 27 Října 2013, 07:59:34 »
Echo samozřejmě vypisuje text na standardní výstup, který je připojený do terminálu, ze kterého je skript spouštěn. Aby to něco zobrazovalo v grafickém prostředí, musí se vytvořit okno, které bude aplikace plnit obsahem. Emulátor terminálu, kde se ti echo zobrazuje, je také takové okno. Pro své skripty můžeš použít zenity, které ti umí zprostředkovat i progress bar.

Takže tvé hello echo by mohlo vypadat třeba následovně:

Kód: [Vybrat]
zenity --info --text "Hello World" --title "Moje okno"

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #2 kdy: 27 Října 2013, 17:48:00 »
Díky za nasměrování.
Zenity byl součástí repozitáře Puppy Package Manager, hned jsem nainstaloval.
Musím to ještě zkusit nastavit, bylo by dobré zobrazovat Progress i s ukazatelem, také např.u kopírování z flashdisku na HDD.
Pro ty dávky je to výborné, zatím jsem se orientoval (jestli je konec dávky) jenom podle zatížení procesoru na liště vedle hodin anebo podle chroustání HDD.


GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #3 kdy: 27 Října 2013, 18:17:03 »
Jak použít progress bar se kdyžtak koukni sem:
https://help.gnome.org/users/zenity/3.8/progress.html.en

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #4 kdy: 06 Listopadu 2013, 15:53:54 »
Ještě bych se to pokusil zdokonalit. Zenity funguje výborně, ale bylo by ještě lepší, aby se průběh scriptu ( jedná se o ukládání filmu do jiného kontejneru programem ffmpeg ) zobrazoval v okně na obrazovce tak jako se to děje ve Windows XP nebo 7 ( okno Příkazový řádek ).
Když příkaz zadám do console, tak se průběh přeukládání v okně console zobrazuje - viz příloha.
Pokud spustím script #!/bin/bash, tak se žádné okno nezobrazí.
Zkoušel jsem taky zobrazení progress bar, ale v Zenity se nedá odvodit od průběhu ukládaného souboru-filmu programem ffmpeg. Možná by se dal průběh odvodit od velikosti vytvářeného souboru .mkv, ale na to mi bohužel znalosti nestačí.
Díky.

[příloha smazaná administrátorem]

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #5 kdy: 06 Listopadu 2013, 16:45:25 »
Pokud chceš skript spouštět v okně, musíš si o to říct. Ať už správci souborů, ve kterém na to klikáš (pokud to umí, jako Nautilus), nebo si spouštět okno emulátoru terminálu sám, třeba:
Kód: [Vybrat]
gnome-terminal -x Prevod.sh
S progresem převodu nevím, zeptej se googlu, neřešíš to jako první.

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #6 kdy: 06 Listopadu 2013, 19:40:17 »
Kód: [Vybrat]
gnome-terminal --geometry 50x10+0+0 --command "script --command 'ffmpeg -i' /cesta/log.txt" & tohle ti otevře okno s průběhem a navíc ti vytvoří log soubor celého průběhu

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #7 kdy: 07 Listopadu 2013, 12:26:58 »
Díky za odpovědi.
Zatím se mi podařilo spustit terminál se zkušebním scriptem
Utility - *Gexec execute a command. Je tam možnost zakliknutí Run in terminal emulator.
Pokud do Run Command zadám svůj script, tak se spustí v okně. Zkoušel jsem zadat i gnome-terminal, ale to mi nefunguje. Jedná se o Linux Puppy 5.0.1. Grafické prostředí JWM, console urxvt.
Takže okno by už bylo.
Teď jen zbývá poslední fáze a to zadat příkazy echo do scriptu Prevod.sh tak, aby v tom okně se nejenom zobrazovaly, např. echo mkdir /mnt/sda3/slozka/, ale taky vykonávaly. Zkouším hledat na webu, zkouším zkušební script, ale zatím bohužel nic.
Script mám v příloze minulého příspěvku.

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #8 kdy: 07 Listopadu 2013, 14:33:23 »
pokud nemáš gnome-terminal, tak použiješ urxvt. Udělej si zkoušku, vytvoř so v domácím adresáři dva scripty. test.sh a echo.sh Do echo.sh si dej
Kód: [Vybrat]
#!/bin/sh

echo "spouštím yes"
yes
echo "ukončuji yes"

exit 0
to je tvůj budoucí script s ffmpeg. Yes tam je proto, že ti bude celou dobu plnit terminál "Y" aby se ti hned nezavřel, protože ty dvě echa by si ani nepostřehl. Do test.sh si vlož
Kód: [Vybrat]
#!/bin/sh
urxvt --geometry 50x10+0+0 --command "script --command '/home/jmeno_uživatele/echo.sh' /home/jmeno_uživatele/test.txt"

exit 0
Za "jmeno_uživatele" si dej to svoje. Oběma přiděl spustitelný příznak a dvojklikem spusti test.sh
Otevře se ti terminálové okno, kde se ti začne vypisovat výstup ze scriptu echo.sh Uzavřením okna to ukončíš a v domácím adresáři se ti vytvoří texťák test.txt s celým průběhem.
« Poslední změna: 07 Listopadu 2013, 14:36:15 od Cuore »

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #9 kdy: 07 Listopadu 2013, 17:53:47 »
Zkoušel jsem to podle tvého příspěvku.
Okno vždy jen problikne. Musel jsem zadat názvy bez háčků a čárek, scripty vytvářím v Geany a s diakritikou se to nechtělo uložit.
V Puppy je adresář /root/my-applications/Prevod.sh. V tomto adresáři mám scripty, tak jsem do scriptu test.sh zadal /root/my-applications/test.sh. V adresáři /mnt/home/ jméno uživatele není-viz příloha.
Zkusil jsem script Prevod_na_mkv.sh spustit v Utility-*gExec se zakliknutím Run in terminal emulator a objevilo se okno. Při kopírování z fashdisku do nově vytvořeného adresáře bylo prázdné, ale když se spustil ffmpeg tak se v okně zobrazoval převod - HURÁ !!!
Tak jsem na začátek scriptu napsal echo "Kopirovani z flashdisku" ať v tom okně něco je a když script postoupí dál tak je tam průběh převodu ffmpeg (příloha).
Ještě časem zkusím z předminulého příspěvku
gnome-terminal --geometry 50x10+0+0 --command "script --command 'ffmpeg -i' /cesta/log.txt" &
Doufám, že namísto gnome-terminal stačí napsat urxvt.

Moc děkuju.





[příloha smazaná administrátorem]

[příloha smazaná administrátorem]

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #10 kdy: 09 Listopadu 2013, 17:32:27 »
Můžu ohlásit další mírný pokrok v mezích zákona.
Jak jsem potřeboval zobrazit průběh kopírování z flashdisku, tak namísto příkazu cp -r jsem použil
rsync -r --progress a v okně je krásně zobrazen průběh kopírování v %, které soubory se kopírují a kolik času zbývá do konce kopírování ( příloha ).
Byl jsem zvyklý na zelený ukazatel z Windows, kde se kopírování nachází a mít v okně jen "Kopírování z flashdisku" ( můj předchozí příspěvek ), bylo jaksi málo.

[příloha smazaná administrátorem]

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #11 kdy: 22 Března 2014, 17:01:46 »
Vrátil bych se na začátek.
Scripty spouštím
- buď pomocí Gexec ( Menu-Utility-*Gexec Execute Command-potom je třeba naklikat šipkami nahoru nebo dolů ten požadovaný script a zakliknout Run in terminal emulator ). Je to moc klikání.
- nebo spustím terminál urxvt a šipkami najdu název scriptu, např. "/root/my-applications/Kopirovani.sh" . V okně terminálu se pak zobrazuje průběh kopírování nebo třeba převodu.

Pořád ale nemohu přijít na to, aby se požadovaný script spouštěl kliknutím na jeho ikonu a průběh byl vidět v okně. Abych nemusel otevírat terminál a hledat požadovaný script.
Zkoušel jsem "Hello World", ale kliknutím na ikonu se tento script spustí, běží ale žádné okno se neotevře. Že běží vidím když v terminálu zadám ps aux ( číslo procesu a vytížení CPU ). Zastavit ho potom musím příkazem kill a číslo procesu.

#!/bin/bash
echo "spoustim yes"
yes
echo "ukoncuji yes"

exit 0

Mohl by někdo poradit ? Děkuji.



Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #12 kdy: 22 Března 2014, 17:36:33 »
nejrychleší je si vytvořit spouštěč, který ti pak odkazuje na script. Ten pouze dvojklikem otevřeš a vše musí fungovat.
http://wiki.ubuntu.cz/spou%C5%A1t%C4%9B%C4%8D
aby se ti script spustil v terminálu docílíš změnou
Kód: [Vybrat]
Terminal=false
na
Kód: [Vybrat]
Terminal=true

Pavel D

  • Návštěvník
  • Příspěvků: 32
Re:Zobrazení průběhu scriptu na obrazovce (echo)
« Odpověď #13 kdy: 22 Března 2014, 18:04:59 »
Moc moc děkuju.
Tohle jsem přesně potřeboval !!!
Funguje i na mém Linux Puppy 501 na letitém PC, který slouží jen na převod a ukládání filmů.


 

Provoz zaštiťuje spolek OpenAlt.