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 12:11 | Komunita

V Praze na Fakultě informačních technologií ČVUT probíhá openSUSE Conference 2018. Přednášky lze sledovat také online. Aktuální dění lze sledovat na Twitteru. Stisknutím zeleného tlačítka bylo dnes dopoledne vydáno openSUSE Leap 15.0.

Ladislav Hagara | Komentářů: 1
dnes 11:44 | Komunita

Na Steamu probíhá do 28. května akce s názvem Spring Cleaning (Jarní úklid). V rámci akce lze hrát hry Don't Starve Together, Cities: Skylines, Tyranny, Borderlands 2, Middle-earth: Shadow of Mordor a Left 4 Dead 2 běžící na Linuxu zdarma [GamingOnLinux].

Ladislav Hagara | Komentářů: 2
včera 23:23 | Humor

Nová služba České pošty nazvaná Bezpečné úložiště nabízí až 100GB kapacitu pro "bezpečnou správu Vašich dat pod patronací důvěryhodného partnera Česká pošta".

… více »
Lol Phirae | Komentářů: 44
včera 22:14 | Bezpečnostní upozornění

Nova kritická hrozba VPNfilter bola zistená po dlhšiej spolupráce Talos s verejnými i súkromnými bezpečnostnými agentúrami. VPNfilter ohrozuje približne 500 000 zariadení v približne 54 krajinach. Zasiahnutí výrobcovia sú Linksys, MikroTik, NETGEAR, TP-Link (SOHO), QNAP (NAS). Správanie malwaru je nebezpečnej povahy, čo môže v určitých prípadoch spôsobiť škody veľkého rozsahu. Často tieto zariadenia sú na perimetri sieťe bez ochrany.

ewew | Komentářů: 5
včera 21:55 | Pozvánky

CSNOG (Czech and Slovak Network Operators Group), první československé setkání síťových operátorů, se uskuteční 11. a 12. června v Brně. Akce je určena poskytovatelům internetového připojení, síťovým operátorům, provozovatelům registrů, internetovým odborníkům a všem zájemcům o internetové a síťové technologie. Program je zaměřený na odborná, technická témata jako například síťová architektura, bezpečnost sítí, zpracování dat, DNS a další. Nutná je registrace.

Ladislav Hagara | Komentářů: 0
včera 21:33 | Komunita

Na Humble Bundle lze získat počítačovou hru, simulátor hackování, Hacknet (Wikipedie, YouTube) běžící také v Linuxu zdarma. Tentokrát je ke stažení také verze bez DRM a navíc soundtrack. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 0
23.5. 20:11 | Zajímavý software

Alexandre Julliard oznámil jménem vývojového týmu Wine vydání první verze 1.0 knihovny vkd3d určené pro překlad volání Direct3D 12 na Vulkan. Zdrojové kódy vkd3d jsou k dispozici pod licencí LGPLv2.1+.

Ladislav Hagara | Komentářů: 1
23.5. 19:33 | Komunita

Dnešním dnem lze účet Firefoxu chránit dvoufázovým ověřováním (2FA). Implementován byl standard TOTP (Time-based One-Time Password).

Ladislav Hagara | Komentářů: 0
23.5. 15:17 | Pozvánky

Od pátku 25. 5. proběhne na Fakultě informačních technologií ČVUT v Praze openSUSE Conference. Můžete se těšit na spoustu zajímavých přednášek, workshopů a také na Release Party nového openSUSE Leap 15.0. Na stejném místě proběhne v sobotu 26. 5. i seminář o bezpečnosti CryptoFest.

Jendа | Komentářů: 0
23.5. 13:33 | Zajímavý software

Drawpile je svobodný multiplatformní program pro kreslení podporující společné kreslení několika uživatelů. Zdrojové kódy jsou k dispozici na GitHubu pod licencí GPLv3+. Drawpile i Drawpile Server jsou ke stažení také ve formátu AppImage. Stačí tedy nastavit právo na spouštění a spustit.

Ladislav Hagara | Komentářů: 0
Používáte pro některé služby inetd?
 (34%)
 (23%)
 (42%)
Celkem 154 hlasů
 Komentářů: 5, poslední 22.5. 16:46
    Rozcestník

    Dotaz: Parametry

    21.3.2010 15:11 Rogue | skóre: 4
    Parametry
    Přečteno: 367×

    Dobrý den, jelikož Bash není moje silná stránka obracím se na Vás o pomoc. Mám script, ze kterého získávám parametry pomocí getopts(). A vůbec si nevím rady jak oštřit to, že když uživatel zadná špatný parametr či jakýkoli nesmysl, aby mu script vrátil chybové hlášeí. Prosím o pomoc, přikádám můj "scriptík".

    while getopts "a:b:c:d:e:" PARAMETR;

    do

    case $PARAMETR in

    e) echo "ahoj" ;;

    w) echo "cau" ;;

    \?) echo "hlaseni"; exit 1 ;;

    *) echo "hlaseni"; exit 1 ;;

    esac

    done


    Řešení dotazu:


    Odpovědi

    21.3.2010 17:32 zulu
    Rozbalit Rozbalit vše Re: Parametry
    Jestli myslíš parametry jednotlivých voleb, tak ty se ukládají do $OPTARG a můžeš si je testovat, jak potřebuješ.

    Jestli myslíš parametry, které getopts vůbec nezpracuje, tak v $OPTIND je index dalšího parametru ke zpracování (resp. posledního nezpracovaného) a můžeš ho (za tím while) porovnat s celkovým počtem parametrů.
    [ $OPTIND -le $# ] && echo "zasek na parametru $OPTIND - ${!OPTIND}"
    22.3.2010 19:47 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Pořeboval bych ukázat jak ošetřit dva parametry ze scriptu uvedeného výše takovým způsobem, aby nemohli být zadány současně například parametry -a -b, v případě že by je uživatel zadal obdržel by chybové hlášení. Prostě a stručně nemůže být zadáno -a i -b současně, ale která koliv kombinace jiných parametrů být zadána může. Moc díky za vaši odpověď.
    22.3.2010 20:03 l4m4
    Rozbalit Rozbalit vše Re: Parametry
    Aplikační logika se holt musí napsat, to getopt sám neudělá.
    seen_a=
    seen_b=
    
    ...
    while getopts...
    ...
    a) seen_a=yes; ...;;
    b) seen_b=yes; ...;;
    ...
    esac
    ...
    
    if test -n "$seen_a" -a -n "$seen_b"; then
      echo "At most one of -a and -b can be given" 1>&2
      exit 1
    fi
    
    22.3.2010 20:53 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Moc diky
    22.3.2010 21:06 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Narazil jsem na další problém, potřebuji si vypsat poslední prametr programu, vím že proměnná $# nese v sobě počet zadaných paramaetrů.
    22.3.2010 21:35 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: Parametry
    echo "${${#}}"
    
    Fuky avatar 22.3.2010 21:47 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Parametry
    eval "last=\${$#}"
    echo $last
    
    Fuky avatar 22.3.2010 22:02 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Parametry

    Případně:

    echo ${!#}
    

    nebo:

    args=("$@")
    echo "${args[$(($#-1))]}"
    
    22.3.2010 22:02 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Jsi si jistý že je to takto ?
    Fuky avatar 22.3.2010 21:41 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Parametry
    shift $(($#-1))
    echo $1
    
    22.3.2010 22:05 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Díky moc, dokonalost tahle pomoc fakt dík.
    23.3.2010 12:12 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Mohl by jsi to tochu objsanit, je to přesně to co jesem chtěl, ale nedokážu pochopit ten princip. Díky
    Fuky avatar 23.3.2010 12:45 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Parametry
    Co konkrétně potřebuješ objasnit, něco z příspěvku od l4m4?
    23.3.2010 13:34 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Nechápu to vykonání té podmínky vzhledem k tomu že je na konci. Mám na to asi jinný pohled proto prosím o stručné vysvětlení. Díky
    Fuky avatar 23.3.2010 14:09 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Parametry

    Problém je v tomto případě rozdělen na dvě nezávislé části:

    1. v cyklu se načtou všechny argumenty příkazové řádky do proměných
    2. provede se kontrola kolize argumentů

    To může značně zpřehlednit kód. Důležité je, že v cyklu pro zpracování argumentů jen nastavuješ proměné, ale nevykonáváš zatím žádnou akci, právě proto si můžeš dovolit test kolize až za tímto cyklem.

    Ale lze to řešit i jinak, záleží na konkrétním návrhu logiky argumentů příkazové řádky. Např. pokud nechci společně použít argumenty -a, -b je zbytečné ukládat nastavení těchto argumentů do dvou proměných, ale stačí jedna proměná, která implicitně neobsahuje nic a před přiřazením hodnoty a nebo b se testuje zda-li je prázdná a teprve poté se provede přiřazení. Pokud prázdná není, tak může uživatel okamžitě dostat chybové hlášení, že nesmí používat společně argumenty -a, -b a program se může ukončit aniž by se pokračovalo v dalším zpracovávání argumentů.

    BTW: Pokud píšeš něco rozsáhlejšího, tak doporučuji zvážit použití Pythonu. Psát větší projekty v Bashi je cesta do pekel. A ani na ty menší se nevyplatí, pokud pro to nemáš nějaký opravdu pádný důvod.

    23.3.2010 16:57 Rogue | skóre: 4
    Rozbalit Rozbalit vše Re: Parametry
    Moc díky už to chápu :). Jinak v tom Pythonu s tebou souhlasím ve všech směrech. Bohužel pro BASH mám důvod proto tolik otázek, ale každopádně díky za odpovědi.
    23.3.2010 14:41 duigha
    Rozbalit Rozbalit vše Re: Parametry
    Na FITu začaly projekty? :)

    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.