Portál AbcLinuxu, 8. května 2025 07:13
asi jako myslel že si v tom loopu kde koukáš jakej je jakoby uživatelem máčknutej čudlik si budeš nějak pamatovat čas vod posledního máčknutí a když ten rozdíl bude menčí neř třeba 100ms tak misto akce ten vstup zahodíš :D ;D
asi něco jako todlecto snad (nevim jak děláš s inputem)
#!/usr/bin/env bash #kdy naposled sme něco psali do terminálku naposled=0 # nekonečnej loop (vypneš ctrl+c) while true; do # skováme si máčknutej znak do proměný 'písmenko' stty cbreak pismenko=`dd if=/dev/tty bs=1 count=1 2>/dev/null` stty -cbreak # chcem milisekundy tedko=$(($(date +%s%N)/1000000)) # spočitáme jakej je jako rozdíl mezi posledním máčknutím a časem teďkonc ((delta=tedko-naposled)) # když je delta víc jak 100ms tak napišem jaký se jako písmenko máčklo a skováme do proměný 'naposled' novej čas if [ $delta -gt 100 ] then echo "macknuty pismenko: $pismenko" naposled=$tedko fi done
to nevim :O :O to vypadá jakobytam zustalo takový to N a % chtělo asi udělat modulo :O :O
co ti vypiše příkaz
date +%s%N
jakou máš verzi date :O :O
date --version
date +%s%N 1642116726N date --version date: illegal option -- - usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
neni to jakoby macOS nebo bsd?? :O :O date tam prej neumí nanosekundy :O :O
mohla by ale jako fungovat epochrealtime proměná hele :O ;D
nejdřiv si ji zkus vypsat příkazem
echo $EPOCHREALTIME
jestli ti jako funguje + koukni jestli to piše desetinou čárku ',' nebo tečku '.' a podletohodlectoho předělej řádek 15 by se dával dopryč ten správnej znak
#!/usr/bin/env bash #kdy naposled sme něco psali do terminálku naposled=0 # nekonečnej loop (vypneš ctrl+c) while true; do # skováme si máčknutej znak do proměný 'písmenko' stty cbreak pismenko=`dd if=/dev/tty bs=1 count=1 2>/dev/null` stty -cbreak # chcem milisekundy tedko=$((${EPOCHREALTIME//,}/1000)) # spočitáme jakej je jako rozdíl mezi posledním máčknutím a časem teďkonc ((delta=tedko-naposled)) # když je delta víc jak 100ms tak napišem jaký se jako písmenko máčklo a skováme do proměný 'naposled' novej čas if [ $delta -gt 100 ] then echo "macknuty pismenko: $pismenko" naposled=$tedko fi done
date +%s%N
1642428553N
gdate +%s%N
1642428709323360000
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.