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 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Komunita

    Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.

    Ladislav Hagara | Komentářů: 17
    včera 02:00 | Nová verze

    Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.12. 18:33 | Nová verze

    Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.

    Ladislav Hagara | Komentářů: 0
    23.12. 13:55 | Nová verze

    Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.

    Ladislav Hagara | Komentářů: 0
    23.12. 12:44 | Nová verze

    Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.

    Ladislav Hagara | Komentářů: 0
    22.12. 23:44 | Nová verze

    Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.

    Ladislav Hagara | Komentářů: 0
    21.12. 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    21.12. 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 14
    Kdo vám letos nadělí dárek?
     (33%)
     (2%)
     (11%)
     (2%)
     (1%)
     (2%)
     (15%)
     (19%)
     (14%)
    Celkem 85 hlasů
     Komentářů: 18, poslední včera 15:30
    Rozcestník

    Dotaz: Bash IF

    pepe_ avatar 16.4.2011 15:22 pepe_ | skóre: 48
    Bash IF
    Přečteno: 711×

    Snažim se přepsat script kterej je původně pro visualbasic do bashe

     

    Original VB :

    Public Function Velikonoce(rok as integer) As Date
        Dim a, b, c
        Dim m, n
        Dim d, e, U
        Dim V
        a = rok Mod 19
        b = rok Mod 4
        c = rok Mod 7
        m = 24
        n = 5
        d = (19 * a + m) Mod 30
        e = (n + 2 * b + 4 * c + 6 * d) Mod 7
        U = d + e - 9
        If U = 25 And d = 28 And e = 6 And a > 10 Then
            U = 18
            V = 4
        ElseIf U >= 1 And U <= 25 Then
            V = 4
        ElseIf U > 25 Then
            U = U - 7
            V = 4
        Else
            U = 22 + d + e
            V = 3
        End If
        Velikonoce = DateSerial(rok, V, U)    
     End Function
    
    To co přepisuju :
    rok=$1
    a=$((rok%19))
    b=$((rok%4))
    c=$((rok%7))
    m=24
    n=5
    da=$((19*a))
    db=$((da+m))
    d=$((db%30))
    ea=$((n+2))
    eb=$((ea*b))
    ec=$((eb+4))
    ed=$((ec*c))
    ee=$((ed+6))
    ef=$((ee*d))
    e=$((ef%7))
    ua=$((d+e))
    U=$((ua-9))
    
    nevim ale jak správně zadat podmínky IF
    If U = 25 And d = 28 And e = 6 And a > 10 Then
            U = 18
            V = 4
        ElseIf U >= 1 And U <= 25 Then
            V = 4
        ElseIf U > 25 Then
            U = U - 7
            V = 4
        Else
            U = 22 + d + e
            V = 3
        End If
    
    správně do bashe . Jak se dávají za sebe ? Děkuji

    Řešení dotazu:


    Odpovědi

    16.4.2011 16:33 NN
    Rozbalit Rozbalit vše Re: Bash IF
    if [ $U -eq 25 -a $d -eq 28 -a $e -eq 6 -a $a -gt 10 ]; then
            U=18;
            V=4;
    elif [ $U -ge 1 -a $U -le 25 ]; then
            V=4;
    elif [ $V > 25 ]; then
                    U=$(($U - 7));
                    V=4;
    else
            U=$((22 + $d + $e));
            V=3;
    fi
    
    NN
    pepe_ avatar 16.4.2011 18:23 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    Děkuju za ukázku IF , zde je script na výpočet velikonoc ale mam dojem že nepracuje dobře.

     

    #!/bin/bash
    rok=$1
    if [ $rok -lt 1897 ] || [ $rok -gt 2039 ] ; then
    echo "Zadejte rok  1897 - 2039 "
    exit 0
    fi
    a=$((rok%19))
    b=$((rok%4))
    c=$((rok%7))
    m=24
    n=5
    da=$((19*a))
    db=$((da+m))
    d=$((db%30))
    ea=$((n+2))
    eb=$((ea*b))
    ec=$((eb+4))
    ed=$((ec*c))
    ee=$((ed+6))
    ef=$((ee*d))
    e=$((ef%7))
    ua=$((d+e))
    U=$((ua-9))
    if [ $U -eq 25 -a $d -eq 28 -a $e -eq 6 -a $a -gt 10 ]; then
            U=18;
            V=4;
    elif [ $U -ge 1 -a $U -le 25 ]; then
            V=4;
    elif [ $V > 25 ]; then
                    U=$(($U - 7));
                    V=4;
    else
            U=$((22 + $d + $e));
            V=3;
    fi
    echo "Velikonoce budou dne $U.$V $rok"
    

     

    Vycházel sem ze stránek WIKI .

    Kde se dá ověřit že to funguje správně ?

    pepe_ avatar 16.4.2011 18:26 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    Podle * je to špatně .

    17.4.2011 12:25 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash IF

    Srovnejte

    ea=$((n+2))
    eb=$((ea*b))
    ec=$((eb+4))
    ed=$((ec*c))
    ee=$((ed+6))
    ef=$((ee*d))
    e=$((ef%7))
    

    vs.

    e=$((($n+2*$b+4*$c+6*$d)%7))
    
    pepe_ avatar 17.4.2011 15:58 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    no srovnavam ale nejak mi unika chyba , MNE TO PRIJDE STEJNE ALE JINAK ZAPSANE.

    Asi sem slepej ale prijde mi to principialne identicke.

    V cem je teda rozdil ?

    17.4.2011 16:41 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash IF

    Tak si tam zkuste dosadit konkrétní čísla a uvidíte.

    Hint: (a+b)*c != a+b*c == a+(b*c)

    pepe_ avatar 17.4.2011 17:11 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    takle rozumim ze a+b to cele * c je jine nez b*c to cele +a

    ale se zapisu mi to takto neprijde

    17.4.2011 17:21 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash IF
    To je váš problém, že vám to nepřijde. Takhle to prostě je a učí se to už na prvním stupni základní školy.
    pepe_ avatar 17.4.2011 17:28 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    Takze nejdrive nasobit a vysledky pak scitat , to s te tim chtel rict ?.

    17.4.2011 17:30 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash IF
    Samozřejmě. Stejně jako kdybyste to počítal ručně podle vzorečku. Nebo to prostě nechte spočítat bash, stejně jako autor původního skriptu.
    pepe_ avatar 17.4.2011 17:31 pepe_ | skóre: 48
    Rozbalit Rozbalit vše Re: Bash IF

    Ono učit se a hledat chybu je užitečnější než použít cizí výtvor.

    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.