Portál AbcLinuxu, 1. ledna 2026 03:12
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.