Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »
Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
Řešení dotazu:
Nějak nerozumim kde je problém. Pár IF a je hotovo ne. Zkus se rozepsat pro co to vlastně chceš popřípadě vložit kód co máš. Nerozumim tomu co ti nejde.
#!/bin/bash
ttt=("aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj")
sel=0
sum=${#itm[@]}
max=5
while [ 1 ]
do
clear
for ((i=0; i<$max; i++ ))
do
if [ $sel = $i ]
then
echo -e "\e[5;31m ${ttt[i]} \e[0m"
else
echo "${ttt[i]}"
fi
done
#sel=$((sel-1))
sel=$((sel+1))
sleep 1
done
Tohle ? (Pohyb kurzorovejma klávesama UP/DOWN) ESC konec
#!/bin/bash
ttt=("aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj")
sel=0
sum=${#itm[@]}
max=10
while [ 1 ]
do
clear
for ((i=0; i<$max; i++ ))
do
if [ $sel = $i ]
then
echo -e "\e[5;31m ${ttt[i]} \e[0m"
else
echo "${ttt[i]}"
fi
done
echo $k
read -sn1 -t1 c
l=`perl -e "printf('%d',ord('$c'));"`
k="$l"
if ((k == 66)) && ((sel < max -1 )) ; then
let sel++
fi
if ((k == 65)) && ((sel > 0)); then
let sel--
fi
if ((k == 27)) ; then
break
fi
done
Teda tohle UP/DOWN a stop je ctrl+c
#!/bin/bash
ttt=("aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj")
sel=0
sum=${#itm[@]}
max=10
while [ 1 ]
do
clear
for ((i=0; i<$max; i++ ))
do
if [ $sel = $i ]
then
echo -e "\e[5;31m ${ttt[i]} \e[0m"
else
echo "${ttt[i]}"
fi
done
read -sn1 -t1 c
l=`perl -e "printf('%d',ord('$c'));"`
k="$l"
if ((k == 66)) && ((sel < max -1 )) ; then
let sel++
fi
if ((k == 65)) && ((sel > 0)); then
let sel--
fi
No ještě jedna verze (vypisuje jen 5 ale roluje)
#!/bin/bash
ttt=("aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj")
sel=0
sum=${#ttt[@]}
max=5
pos=0
while [ 1 ]
do
clear
for ((i=$pos; i<($pos+$max); i++ ))
do
if [ $sel = $i ]
then
echo -e "\e[5;31m ${ttt[i]} \e[0m"
else
echo "${ttt[i]}"
fi
done
read -sn1 -t1 c
l=`perl -e "printf('%d',ord('$c'));"`
k="$l"
if ((k == 66)) && ((sel < (sum -1) )) ; then
let sel++
if (((pos +5) < sum)); then
let pos++
fi
fi
if ((k == 65)) && ((sel > 0)); then
let sel--
if (( (pos ) > 0 )); then
let pos--
fi
fi
done
Spustím program a dostanu výsledek >1111111111< 2222222222 3333333333 4444444444 5555555555 stisk klávesy dolů, výsledek 1111111111 >2222222222< 3333333333 4444444444 5555555555 stisk klávesy dolů, výsledek 1111111111 2222222222 >3333333333< 4444444444 5555555555 stisk klávesy dolů, výsledek 1111111111 2222222222 3333333333 >4444444444< 5555555555 stisk klávesy dolů, výsledek 1111111111 2222222222 3333333333 4444444444 >5555555555< stisk klávesy dolů, ted prijde zmena výsledek 2222222222 3333333333 4444444444 5555555555 >6666666666< stisk klávesy dolů, výsledek, tohle se opakuje až po poslední položku 3333333333 4444444444 5555555555 6666666666 >7777777777< *********************************** ted stisk klávesy nahoru, výsledek *********************************** 3333333333 4444444444 5555555555 >6666666666< 7777777777 stisk klávesy nahoru, výsledek 3333333333 4444444444 >5555555555< 6666666666 7777777777 stisk klávesy nahoru, výsledek 3333333333 >4444444444< 5555555555 6666666666 7777777777 stisk klávesy nahoru, výsledek >3333333333< 4444444444 5555555555 6666666666 7777777777 stisk klávesy nahoru, ted prijde zmena výsledek >2222222222< 3333333333 4444444444 5555555555 6666666666 stisk klávesy nahoru, výsledek >1111111111< 2222222222 3333333333 4444444444 5555555555Děkuji
Tady ?
#!/bin/bash
ttt=("aaa" "bbb" "ccc" "ddd" "eee" "fff" "ggg" "hhh" "iii" "jjj")
sel=0
sum=${#ttt[@]}
max=5
pos=0
center=0
while [ 1 ]
do
clear
for ((i=$pos; i<($pos+$max); i++ ))
do
if [ $sel = $i ]
then
echo -e ">\e[5;31m${ttt[i]}\e[0m<"
else
echo " ${ttt[i]} "
fi
done
read -sn1 -t1 c
l=`perl -e "printf('%d',ord('$c'));"`
k="$l"
if ((k == 66)) && ((sel < (sum -1) )) ; then
let sel++
if ((center < max)); then
let center++
fi
if ((center == max )) && (((pos +5) < sum)); then
let pos++
fi
fi
if ((k == 65)) && ((sel > 0)); then
let sel--
if ((center > 0)); then
let center--
fi
if ((center == 0 )) && (( (pos ) > 0 )); then
let pos--
fi
fi
done
a číslo účtu??
To je nekonečná práce , přidat ještě tunu IF proti všem možnejm kombinacím , přidat ( http://www.bashguru.com/2010/04/how-to-handle-cursor-movement-in-shell.html ) pozici zobrazení , orámování , a stále bude co vylepšovat. Nakonec to raději udělá někdo za pomoci ncurses v céčku. :)
Ať to čtu jak to čtu stále nevím co vlastně chcete ...
Zkuste svůj požadavek upřesnit.
Hodnotu těch proměnných echo $prommena si můžete vypsat. Nebo nechápete princip ? O co jde ?
Nebo jdi sem , pokud tam budu nebo někdo bude : http://cz3dtc.cz/linux.htm
Aha , celej kód je naprd , oprava bude : http://pastebin.com/9etQa14z
Teda až to předělam.
Děkuji za informace Veroniky která vyšťourala že je to celé na prd :)
Tak zde je opravená verze :
#!/bin/bash
start=1
clear
tput civis -- invisible
trap "stty $(stty -g)" EXIT
stty -echo -icanon time 2 || exit $?
KEYS="" ; IFS=$'\a'
ttt=("Volba 1" "Volba 2" "Volba 3" "Volba 4" "Volba 5" "Volba 6" "Volba 7" "Volba 8" "Volba 9" "Volba 10" "Volba 11" "Volba 12" "Volba 13" "Volba 14" "Volba 15")
ap=0; let start--
pp=${#ttt[@]}
mp=5
if ((pp < mp)) ; then let mp=pp ; fi
posun_seznamu=0
center=0
acc=5
function zobraz ()
{
let tmpap=ap ; let tmpap++
echo -en "\033[1;1H"
echo "ESC = Konec , ENTER = výběr volby"
let posa=$posun_seznamu ; let posb=($posun_seznamu+$mp)
let posa=($posa + $center) ; let posb=($posb + $center)
echo -e "\033[1m\033[46m \e[0m"
for ((i=$posa; i<($posb); i++ ))
do
if [ $ap = $i ]
then
echo -e "\033[1m\033[46m \e[0m\033[1m\033[44m${ttt[i]}\e[0m\033[1m\033[46m \e[0m"
else
echo -e "\033[1m\033[46m \e[0m\033[30m\033[47m${ttt[i]}\e[0m\033[1m\033[46m \e[0m"
fi
done
echo -e "\033[1m\033[46m \e[0m"
}
for ((l=0; l<($start); l++ ))
do
zobraz
if ((ap < (pp -1 ) )) ; then
let ap++
if (((center + (mp -1)) < ap)) ; then let center++ ; fi
fi
done
zobraz
while [ 1 ]; do
while read -t 0 ; do read -s -r -d "" -N 1 -t 0.2 CHAR && KEYS="$KEYS$CHAR" || break
done
if [ -z "$KEYS" ]; then sleep 0.05 ; continue ; fi
case "$KEYS" in
$'\x1B\x5B\x42'*)
KEYS="${KEYS##???}"
if ((ap < (pp -1 ) )) ; then
let ap++
if (((center + (mp -1)) < ap)) ; then let center++ ; fi
fi
zobraz
;;
$'\x1B\x5B\x41'*)
KEYS="${KEYS##???}"
if ((ap > 0)); then
let ap--
if ((ap < posa )) ; then let center-- ; fi
fi
zobraz
;;
$'\n'*|$'\r'*)
KEYS="${KEYS##?}"
echo "Vybraná položka : ${ttt[ap]} "
tput cnorm -- normal
exit 0
;;
$'\x1B')
KEYS="${KEYS##?}"
echo "Program ukončen ..."
tput cnorm -- normal
exit 0
;;
[$'\x01'-$'\x1F'$'\x7F']*)
KEYS="${KEYS##?}"
;;
*)
KEY="${KEYS:0:1}"
KEYS="${KEYS#?}"
;;
esac
done
Tiskni
Sdílej: