abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:33 | IT novinky

    Po vlastních microSD kartách nabízí nově Raspberry Pi také vlastní NVMe SSD disky. Samostatně i v sadách s M.2 HAT+.

    Ladislav Hagara | Komentářů: 0
    dnes 06:11 | Zajímavý článek

    Byla zveřejněna (𝕏) Zpráva o činnosti Digitální a informační agentury (DIA) za rok 2023 (pdf). Začíná slovy ředitele: "Vznik Digitální a informační agentury (DIA) je v posledních letech možná jedním z nejvýznamnějších kroků, který dodá potřebný impuls digitalizaci státní správy."

    Ladislav Hagara | Komentářů: 6
    dnes 05:11 | Nová verze

    Vývojáři AlmaLinuxu představili AlmaLinux OS Kitten 10, tj. vývojovou verzi AlmaLinux OS 10 vycházejícího z CentOS Stream 10. Přehled novinek v poznámkách k vydání. Proč Kitten? Verze AlmaLinux OS jsou pojmenované podle kočkovitých šelem. Z kotěte vyroste další kočka.

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

    Kryptografická knihovna OpenSSL byla vydána v nové verzi 3.4. Přehled změn na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 19:00 | IT novinky

    Bylo objeveno nové největší prvočíslo. Jedná se o Mersennovo prvočíslo známé též jako M136279841. To znamená, že v binární formě je prvočíslo tvořeno 136 279 841 jedničkami. Objeveno bylo v rámci distribuovaného výpočetních projektu GIMPS (Great Internet Mersenne Prime Search). Zajímavostí je, že na rozdíl od předchozích takto objevených prvočísel nebylo objeveno pomocí CPU, ale na grafické kartě NVIDIA A100 s pomocí programu Gpuowl.

    DaBler | Komentářů: 3
    včera 16:44 | IT novinky

    Protokol MQTT (Wikipedie) dnes slaví 25 let (Mastodon, 𝕏). První publikovaná specifikace je z 22. října 1999.

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

    Mobilní operační systém /e/OS (Wikipedie) založený na Androidu / LineageOS, ale bez aplikací a služeb od Googlu, byl vydán ve verzi 2.4. Přehled novinek na GitLabu. Z novinek lze zmínit podporu telefonu Google Pixel 7. Na stránkách Murena lze koupit Murena Pixel 7.

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

    Připojte se ve středu 30. 10. 2024 od 10:00 do 12:00 na náš webinář "Řízení přístupu do PostgreSQL prostřednictvím externího autentizačního providera" (registrace zdarma) a naučte se, jak nastavit ověřování pomocí GSSAPI pro bezpečný přístup k databázím (Microsoft Active Directory nebo FreeIPA). Záznam předchozího webináře "Co je nového v PostgreSQL 17" můžete zhlédnout zde.

    … více »
    Heřmi | Komentářů: 0
    21.10. 21:33 | Nová verze

    Byla vydána nová verze 0.55 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    21.10. 14:22 | IT novinky

    Dle plánu bylo dnes vydáno Factorio 2.0 a Factorio: Space Age, tj. aktualizace 2.0 počítačové hry Factorio (Wikipedie) oficiálně běžící také na Linuxu a velké vesmírní rozšíření Factorio: Space Age.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: Bash a oprava scriptu

    14.6.2012 13:46 Othelo
    Bash a oprava scriptu
    Přečteno: 380×
    Ahoj, tento kousek kodu funguje
    var=$(dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \
    1 "Obsluha Apache" \
    2 "Obsluha MySQL" \
    3 "Obsluha PHP" 2>&1 >/dev/tty)
    Když ale nechci nic posílat do nějakého dev/tty (coz ani nevim co to presne je, jen jsem dohledal, ze se to tam posila pri nejake chybe) tak to proste smazu a v ten moment je script nefunkcni
    var=$(dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \
    1 "Obsluha Apache" \
    2 "Obsluha MySQL" \
    3 "Obsluha PHP")
    Poradí někdo správný zapis ? Díky

    Řešení dotazu:


    Odpovědi

    14.6.2012 14:06 iKoulee | skóre: 19
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    $(...) znamena ze se prikaz spusti v subshellu, takze je potreba rict kam chcete dat vystup
    var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \
    1 "Obsluha Apache" \
    2 "Obsluha MySQL" \
    3 "Obsluha PHP")
    
    Even if you fall on your face, you’re still moving forward
    14.6.2012 14:16 Othelo
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    Děkuji a musím ten dialog spouštět v subshelu?

    Když to udělám takto?
    dialog --ascii-lines --menu "Hlavní menu" 0 100 0 \
    1 "Obsluha Apache" \
    2 "Obsluha MySQL" \
    3 "Obsluha PHP"
    Jak bych pak mohl třeba pomocí "case" rozlišit to na co se kliklo? Děkuji
    14.6.2012 15:02 iKoulee | skóre: 19
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    subshel se tady primo vybizi pouzit, pravdepodobne by se dalo pouzit i nejake zlo s pomoci pipe, ale subsel bude jednodussi a nejspsi i citelnejsi
    case $var in
      1)
        echo "Indian";
        ;;
      2)
        echo "Muj dotazovaci jazyk";
        ;;
      3)
        echo "PHP: hypertextovy preprocesor";
        ;;
      *)
        echo "Vsechno vedle";
        ;;
    esac
    
    Even if you fall on your face, you’re still moving forward
    14.6.2012 18:26 Othelo
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    Děkuji za informace..

    a když to budu chtít vypsat pomocí pole pro lepší pozdejsi upravu tak jsem to zkousel takto, do pole DATA dam nazvy polozek a do pole DATA2 co se spustit. Jenže to nejsem schopen sesmolit:( Zkoušel jsem kde co ale myslím, že se to dělá úplně jinak nez si myslím.. Poradíte ? Dík
    DATA=("Obsluha Apache" "Obsluha MySQL" "Obsluha PHP")
    DATA2=(apache mysql php)
    
    var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \
    
    for i in ${!DATA[*]}
     do
      $i")" ${DATA[$i]}
     done)
    
    case $var in
     for i in ${!DATA2[*]}
     do
      $i")" ${DATA2[$i]};;
     done
    esac
    14.6.2012 19:10 Kit
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    Vždy je lepší dát k sobě řetězce "apache" a "Obsluha Apache" kvůli konzistenci programu. Zkus to přes dvojrozměrné pole nebo ještě lépe jako seznam dvojic.
    15.6.2012 10:03 Kit
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    A co tak to udělat triviálně?
    var=$(dialog --ascii-lines --stdout --menu "Hlavní menu" 0 100 0 \
       apache "Obsluha Apache" \
       mysql "Obsluha MySQL" \
       php "Obsluha PHP")
    $var
    20.6.2012 14:53 iKoulee | skóre: 19
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    Predstavujete si ten bash moc jako metaprogramovani :-)

    Nasledujici postup plati pouze pro bash, pro jine shell kompatibilni interpretery fungovat nebude a je potreba to udelat trochu sloziteji.

    Na vysvetlenou:
    • pouzil jsem asociativni pole, tento pristup se k tomu vybizi a neni to tak komplikovane jako prace s multidimenzionalnimi poli, nebo n-ticemi, ktere bash nativne nepodporuje a je tedy treba obcuravat zmenou $IFS atp.
    • pole ve kterem muzete mit volby ulozene pak projdeme for cyklem znasilnenym, tak aby se choval jako klasicky foreach
    • prikaz sestaveny v promnenne menuItems pak vyhodnotime za pomoci eval ktery se postara o spravne escapovane uvozovky, vysledek se spusti a dal je to jiz jasne
    #!/bin/bash
    
    declare -A descriptions=(
      [apache]="Obsluha Apache" \
      [mysql]="Obsluha MySQL" \
      [php]="Obsluha PHP");
    
    menuItems="";
    for key in ${!descriptions[@]}; do
      menuItems="$(echo $menuItems $key \"${descriptions[$key]}\")";
    done;
    
    echo $menuItems;
    menuItems="dialog --ascii-lines --stdout --menu \"Hlavní menu\" 0 100 0 $menuItems";
    var=$(eval $menuItems);
    echo "Volba: $var";
    
    Even if you fall on your face, you’re still moving forward
    20.6.2012 14:59 iKoulee | skóre: 19
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    jeste drobna oprava radek 10 je zbytecne slozity a nakladny, omylem jsem to stvoril za pomoci copy& paste, lepe takhle:
    menuItems="$menuItems $key \"${descriptions[$key]}\"";
    
    Even if you fall on your face, you’re still moving forward
    14.6.2012 14:14 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
    Rozbalit Rozbalit vše Re: Bash a oprava scriptu
    No tak to pošli do /dev/null :-)

    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.