abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 19:22 | Nová verze

Ondřej Filip, výkonný ředitel sdružení CZ.NIC, oznámil vydání verze 2.0.0 open source routovacího démona BIRD (Wikipedie). Přehled novinek v diskusním listu a v aktualizované dokumentaci.

Ladislav Hagara | Komentářů: 0
dnes 09:22 | Pozvánky

V Praze dnes probíhá Konference e-infrastruktury CESNET. Na programu je řada zajímavých přednášek. Sledovat je lze i online na stránce konference.

Ladislav Hagara | Komentářů: 1
9.12. 20:11 | Nová verze

Byl vydán Debian 9.3, tj. třetí opravná verze Debianu 9 s kódovým názvem Stretch a Debian 8.10, tj. desátá opravná verze Debianu 8 s kódovým názvem Jessie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 9 a Debianu 8 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 0
9.12. 00:44 | Nová verze

Po 6 měsících vývoje od vydání verze 0.13.0 byla vydána verze 0.14.0 správce balíčků GNU Guix a na něm postavené systémové distribuce GuixSD (Guix System Distribution). Na vývoji se podílelo 88 vývojářů. Přibylo 1 211 nových balíčků. Jejich aktuální počet je 6 668. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 3
8.12. 21:33 | Nová verze

Po půl roce vývoje od vydání verze 5.9 byla vydána nová stabilní verze 5.10 toolkitu Qt. Přehled novinek na wiki stránce. Současně byla vydána nová verze 4.5.0 integrovaného vývojového prostředí (IDE) Qt Creator nebo verze 1.10 nástroje pro překlad a sestavení programů ze zdrojových kódů Qbs.

Ladislav Hagara | Komentářů: 0
7.12. 11:11 | Komunita

Naprostá většina příjmů Mozilly pochází od výchozích webových vyhledávačů ve Firefoxu. Do konce listopadu 2014 měla Mozilla globální smlouvu se společností Google. Následně bylo místo jedné globální smlouvy uzavřeno několik smluv s konkrétními vyhledávači pro jednotlivé země. V USA byla podepsána pětiletá smlouva s vyhledávačem Yahoo. Dle příspěvku na blogu Mozilly podala společnost Yahoo na Mozillu žalobu ohledně porušení této

… více »
Ladislav Hagara | Komentářů: 0
7.12. 05:55 | Zajímavý článek

V Londýně probíhá konference věnovaná počítačové bezpečnosti Black Hat Europe 2017. Průběžně jsou zveřejňovány prezentace. Videozáznamy budou na YouTube zveřejněny o několik měsíců. Zveřejněna byla například prezentace (pdf) k přednášce "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". Dle oznámení na Twitteru, aktualizace vydaná společností Intel nevylučuje možnost útoku.

Ladislav Hagara | Komentářů: 5
7.12. 04:44 | Komunita

Virtualizační nástroj GNOME Boxy ve Fedoře 27 umožňuje jednoduše stáhnout a nainstalovat Red Hat Enterprise Linux, který je pro vývojáře zdarma. Vývojová verze GNOME Boxy již umožňuje jednoduše stáhnout a nainstalovat další linuxové distribuce. Ukázka na YouTube. Seznam distribucí a jejich verze, nastavení a cesty k ISO obrazům je udržován v knihovně a databázi libosinfo (GitLab).

Ladislav Hagara | Komentářů: 0
7.12. 03:33 | Nová verze

Google Chrome 63 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 63.0.3239.84 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře. Opraveno bylo 37 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 10
6.12. 22:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 147. brněnský sraz, který proběhne v pátek 15. prosince od 18:00 hodin v restauraci Severka na rohu Tučkové a Zahradníkové.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (8%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 951 hlasů
 Komentářů: 45, poslední 1.12. 19:00
    Rozcestník

    Dotaz: řešení problému v bash

    9.3.2013 14:41 Standa
    řešení problému v bash
    Přečteno: 763×
    Zdravim, poradi nekdo s timto problemem? O co se jedna. Mam promenou sel, sum a max, promena sel obsahuje cislo aktivni polozky, promena sum obsahuje hodnotu celkovy pocet vsech polozek a promena max obsahuje odnotu kolik zobrazit max polozek na stranku. Potrebuji vypsat polozky tak aby kdyz priklad bude celekem 20 polozek v promene sum a v promene max bude nastaveno 5 tak aby se vypsaly polozky 1 az 5 az do doby kdy hodnota v promene sel max+1 a oak uz vzdy po jedne dolu, nahoru bude stejny zpusob, zacne se posunovat az dosahne prvni vypsane položky. Seru se s tím již dvy dny a nejsem schopen s tim hnout. Poradi prosim nekdo. Díky moc

    Řešení dotazu:


    Odpovědi

    pepe_ avatar 9.3.2013 14:46 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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.

    9.3.2013 16:25 Standa
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Par podminek :( ale jakych? Dik

    tady je kod

    #!/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
    pepe_ avatar 9.3.2013 20:59 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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
    
    pepe_ avatar 9.3.2013 21:10 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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
    
    
    pepe_ avatar 9.3.2013 21:52 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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
    
    10.3.2013 00:15 Standa
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Díky za kód, funguje mi pouze ten poslední ale není to jak bych to potřeboval, viz můj poslední příklad. Díky
    25.3.2013 16:23 kei.101
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Jděte doháje s těma polema v shellu :/ Až to budete potřebovat spustit někde jinde, tak se z toho zblázníte..
    David Watzke avatar 26.3.2013 09:52 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Proč by z toho bláznili? Stačí mít potřebné závislosti. Stanovíš-li si, že závislost bude Bash (určité verze), tak se pak nemůžeš divit, že to nefunguje v nějakém prehistorickém či nekompatibilním shellu.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    27.3.2013 13:27 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Tos ještě neviděl asociativní pole :D
    27.3.2013 13:45 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Nebo implementaci vícerozměrného pole ;).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    28.3.2013 23:47 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: řešení problému v bash
    :D
    9.3.2013 18:41 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: řešení problému v bash
    az do doby kdy hodnota v promene sel max+1 a oak uz vzdy po jedne dolu,

    od slov až do doby dál už je zadání nejasné, nechybí tam nějaká slova, kusy věty či operátory? ... sel bude max+1 a pak už vždy po jedné dolů (ale co to znamená "pak už vždy po jedné dolů"? Vypisovat po jedné dolů? Jak po jedné co po jedné? Nemělo se to vypisovat po pěti? A sel se v průběhu výpisu mění?
    10.3.2013 00:14 Standa
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Přikládám ještě názornou ukázku pro mé lepší vyjádření. Výpis při nastavení proměnné MAX=5

    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
     5555555555
    Děkuji
    pepe_ avatar 10.3.2013 01:07 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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
    10.3.2013 15:29 Standa
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Super, díky moc za tvou ochotu a čas! Poslední otázka... ;-) a číslo účtu??
    pepe_ avatar 10.3.2013 15:38 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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. :)

    10.3.2013 21:53 Standa
    Rozbalit Rozbalit vše Re: řešení problému v bash
    To je nabídka? ;-)
    11.3.2013 21:52 Někdo jiný | skóre: 18 | blog: Někde jinde
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Už udělal: dialog
    24.3.2013 12:23 Veronika
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Ahoj, měla bych taky dotaz, prozradí mě někdo vzorec pro získání obsahu proměné $pos a $center když znám jenom proměnou $sel? Děkuji
    25.3.2013 17:40 Veronika
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Jasně, zase pitomá ženská co se s3r3 do programování..... Hlavně jí nikdo neraďte!!! :-(
    pepe_ avatar 25.3.2013 17:54 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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 ?

    pepe_ avatar 25.3.2013 18:15 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    Nebo jdi sem , pokud tam budu nebo někdo bude  :  http://cz3dtc.cz/linux.htm

    pepe_ avatar 25.3.2013 20:38 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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 :)

    pepe_ avatar 26.3.2013 21:25 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    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
    
    pepe_ avatar 28.3.2013 14:20 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: řešení problému v bash

    Na pastebin  http://pastebin.com/tq2XgnGe  je verze se zakázaným ctrl+c a klávesou pause (Finální verze).

    27.3.2013 13:25 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: řešení problému v bash
    Poradil bych, ale já ten váš dotaz také nepochopil, tak jsem doufal, že někdo jiný se chytne.

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.