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 03:55 | Nová verze

    Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 4
    dnes 02:55 | IT novinky

    Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).

    Ladislav Hagara | Komentářů: 0
    dnes 01:22 | Nová verze

    Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | IT novinky

    Společnost Sony oznámila, že od ledna 2028 přestane vydávat nové hry pro PlayStation na fyzických discích. Všechny budoucí tituly budou dostupné výhradně v digitální podobě na PlayStation Store.

    Ladislav Hagara | Komentářů: 3
    včera 16:55 | Nová verze

    Google Chrome 150 byl prohlášen za stabilní. Nejnovější stabilní verze 150.0.7871.46 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 433 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | Nová verze

    Soudní dvůr Evropské unie potvrdil rekordní pokutu 4,125 miliardy eur (100 miliard Kč) americké technologické firmě Google ze skupiny Alphabet. Pokutu firmě v roce 2018 vyměřila Evropská komise (EK) za to, že Google podle ní zneužívá operačního systému Android k potlačení konkurence na trhu vyhledávacích služeb.

    Ladislav Hagara | Komentářů: 17
    včera 12:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa povolila firmě Anthropic obnovit plný přístup klientů k modelům umělé inteligence (AI) Fable 5 a Mythos 5. Ty byly nedostupné bezmála tři týdny kvůli bezpečnostním obavám vlády, třebaže americké ministerstvo obchodu minulý pátek povolilo omezený přístup k modelu Mythos 5 pro některé „důvěryhodné“ domácí organizace.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Zajímavý článek

    Francúzska organizácia na ochranu spotrebiteľa, po viac než ôsmych rokoch skúmania, žaluje Epson za plánované zastarávanie tlačiarní. Súd sa začína dnes, 2. 7. 2026, vo francúzskom Nanterre.

    Vlado99 | Komentářů: 8
    včera 03:00 | Zajímavý software

    Erin Catto, autor open source 2D fyzikálního enginu Box2D (Wikipedie), představil nový 3D fyzikální engine Box3D. Engine je již používán ve hře The Legend of California.

    Ladislav Hagara | Komentářů: 0
    včera 01:00 | Nová verze

    Byla vydána nová verze 4.0.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (26%)
    Celkem 2048 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Bash IF

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

    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.