Portál AbcLinuxu, 12. května 2025 08:52

Dotaz: Když Shell/Bash už nestačí

10.4.2015 14:56 Libor Chmela
Když Shell/Bash už nestačí
Přečteno: 1053×
Odpovědět | Admin
Ahoj. Dá někdo zdarma radu v čem začít programovat pro Linux? Jedná se zejména pouze pro aplikace, které poběží pouze v terminálu, čili žádná grafika ani žádné klikátka. Požadavky na které mi už Shell/Bash nestačí jsou pole a ovládání programu klávesnicí pomocí klávesových zkratek. Děkuji

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.4.2015 15:08 gsnak | skóre: 22 | blog: gsnak
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
c + ncurses alebo termbox (minimalisticka nahrada za ncurses)
Čo Rys, to vrah!
xxxxxx avatar 10.4.2015 15:17 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Nebo python a curses. Možná by to mohla být schůdnější varianta namísto C.
10.4.2015 18:21 source
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Taky bych šel do Python. Bude se to hodit i při tvorbě skriptů do kompatibilních programů. Navíc je jednoduchým způsobem multiplatformní.
Jendа avatar 10.4.2015 16:01 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Podle toho co. Pro rychle napsané Python, pro výkon a lowlevel věci C.
10.4.2015 16:14 Libor Chmela
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Chlapy a jaká je rozdíl mezi c, c+, c++ ? K čemu mi bude ncurses ?
Jendа avatar 10.4.2015 17:07 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
C++ je C s objekty a pár dalšími věcmi navíc (velmi nepřesně řečeno). C+ neexistuje, já tak říkám případu, kdy někdo píše v C++ ale vypadá to jako kdyby psal v C. ncurses je pro výrobu textových aplikací.
30.4.2015 22:53 Libor Chmela
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem testoval ten Python, hnusnější programovací jazyk kromě JS jsem fak neviděl, hnus, hnus a hnus. Jdu se podívat na to C, snad bude daleko lepší :-(
1.5.2015 08:07 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Co je hnusného na Pythonu? Je 1000× lepší než C.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
1.5.2015 09:46 Libor Chmela
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Jejda Kite nestraš mě :-D O byl můj osobní názor, nechtěl jsem se nikoho dotknout. Hnusný je na tom ten kód, neuzavřené podmínky, funkce, cykly, proměnné bez '$' prostě nepřehlednost. Navíc ty návody na webu, jedna radost, je to pořád jen
import getch
import Tkinter
import curses
import pygame
a ani jeden neexistuje, navíc jen asi Bůh ví jak je to s licencemi. Detekování zmáčknutých kláves (co potřebuji asi ze všeho nejvíc), prostě čistý Python neumí a to jsem hledal opravdu dlouho. :-( Strávený čas chce každý nějak zaplatit, když pro někoho něco dělá, což nemůžu pokud nudu používat programy/knihovny nebo co to je třetích stran. Tak asi tak no.. zklamání...
1.5.2015 10:24 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Neuzavřených podmínek a cyklů jsem si v Pythonu nevšiml. '$' ti asi chybí z PHP. V C ho také nenajdeš. Z návodů si vyber knihu Ponořme se do Pythonu.

K čemu je ti detekování zmáčknutých kláves? Použij události.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
2.5.2015 21:51 ja
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Události ?MŮŽEŠ to upřesnit ?
2.5.2015 22:15 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
3.5.2015 12:56 Libor Chmela
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
A mě taky poradíš nějaký odkaz ? Potřebuji zjistit co uživatel zmáčkl v terminálu (Linux) šipky, enter atd.. Díky
3.5.2015 13:03 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
3.5.2015 16:26 nobody
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
v bash to jde nejak takhle, akorat hexdump musi byt pousten pres sudo, takze mu nastavit NOPASSWD do sudoers
detekce_klavesy(){
	keyb="/dev/input/by-path/*kbd*"
	while true; do
		code=$(sudo hexdump $keyb -n 76 | grep 0000040 | tail -c 15 | sed 's/ .*//')
		piip
		#echo " hex:${code}" ## pro zobrazeni hex
		case $code in
			'0001')
				echo "ESC"
				break ## pro ukonceni smycky
				;;
			'001c')
				echo "Enter"
				;;
			'0069')
				echo "Vlevo"
				;;
			'006a')
				echo "Vpravo"
				;;
			'0067')
				echo "Nahoru"
				;;
			'006c')
				echo "Dolu"
				;;
		esac
	done
}
4.5.2015 14:17 Ja
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Mně v bashi funguje:

while read -n 1 a; do hexdump <<< "$a"; done

takže jen vylepšit parsování té proměnné $a.
pepe_ avatar 4.5.2015 14:56 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí

Jj taky jsem to tak používal na menu viz  http://pastebin.com/tq2XgnGe

4.5.2015 21:46 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
zajímavé, díky
6.5.2015 09:33 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Příloha:
Jde to také bez bashe a příkazu read. Trochu jsem si s tím hrál a takto to tedy dopadlo (posix compatible solution:). Zajímavé je porovnání bashe a ashe: zatímco s ashem to jede celkem plynule, s bashem už to mírně drhne :). (Byl to takový experiment, plný různých rztodivností. Pro reálné použití to není nejlepší způsob.)
6.5.2015 14:08 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Příloha:
jinak podivnosti s použitím hexdump (nebo xxd), se kterými se tu roztrhl pytel a k tomu ta bashovina $'\x..' jsou zbytečné. Stačí použít verbatime znaky '^[[A' , '^[[B', ^[ nebo a^@ . -- Hned jsem to opravil a nyní už to ani v bashi nedře; byl to zbytečnej brzdič na pozadí, kdy se musel kvůli rouře s dd spouštět další sub-shell. Tedy ještě druhá verze, kde jsem se zbavil převodu pomocí xxd, tím považuju čtení na pozadí už za vylazené (jednodušší už to být nemůže:).
6.5.2015 14:53 Arny
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Co na to říct, snad jen to, že ten kód je "dobrej humus !".
6.5.2015 15:35 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
pochybuju, že dokážete bez pole a příkazu read udělat lepší, ale zkuste něco nadhodit
6.5.2015 16:11 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
jinak máte v jistém směru pravdu. Právě jsem zkoušel skript na notebooku, kde mám dash a nějak se menu nezobrazuje správně. Rozdíl mezi ashem a dashem už nehodlám zkoumat; byl jsem na tom, že jsou si dost podobné. Celé to byl hlavně experiment, jestli to vůbec jde, přičemž jsem musel sáhnout k několika netradičním věcem. Pokud byste ale mohl být konkrétnější, co si pod slovem "dobrej humus" představujete, myslím, že by to bylo pro mne i pro ostatní přínosné, Arny.
6.5.2015 18:18 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Pro dash jen stačilo nahradit všechny \e za \033 a parametr funkce (programu) read_key použít jako globální (nepředávat jej v argumentu). I v dashi už to funguje dobře. Tím bych to ukončil. :)
1.5.2015 15:01 Delaunay | skóre: 17 | blog:
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
PHP nebo Perl.

Oba mají podporu pro práci s poli a přehledné proměnné s '$'. Dají se spouštět v terminálu a lze v nich program ovládat pomocí klávesových zkratek.

Perl má drobnou vadu na kráse, pole se označují s '@' :-)
3.5.2015 16:47 Sten
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Pole se označují @ a hashe (mapy, slovníky, asociativní pole, …) se označují %.

Oba jsou také write-only jazyky :-)
6.5.2015 01:59 suic
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Kdyz ti chybi $, tak zkus Perl :)
1.5.2015 19:24 RM
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já se učím tohle:

http://www.linuxsoft.cz/user_page.php?offset=75&user_id=2580&part=article

Moc hezky napsané. Jde to samo ;).
5.5.2015 08:29 rich
Rozbalit Rozbalit vše Re: Když Shell/Bash už nestačí
Odpovědět | | Sbalit | Link | Blokovat | Admin
/usr/bin/dialog

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.