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 00:33 | IT novinky

Josef Průša představil na Maker Faire v New Yorku svou novou 3D tiskárnu Original Prusa i3 MK3. Z novinek (YouTube) lze zdůraznit senzor filamentu, výměnnou magnetickou podložku, rychlejší tisk nebo rozpoznání uskočené vrstvy, výpadku napájení a výpadku filamentu (YouTube).

Ladislav Hagara | Komentářů: 7
včera 17:22 | Komunita

Martin Flöser představil na svém blogu projekt XFree KWin. Cílem projektu je rozběhnout správce oken KWin na Waylandu bez XWaylandu [reddit].

Ladislav Hagara | Komentářů: 7
včera 16:55 | Komunita

Do pátku 29. září probíhá v Praze v hotelu Hilton konference SUSECON 2017 pořádaná společností SUSE. Dění na konferenci lze sledovat na Twitteru. Nils Brauckmann, CEO společnosti SUSE, vítá účastníky konference na YouTube.

Ladislav Hagara | Komentářů: 2
včera 07:00 | Komunita

Příspěvek na blogu společnosti Yubico informuje o začlenění podpory bezpečnostních klíčů FIDO U2F do Firefoxu Nightly. Dosud bylo možné dvoufázové ověření pomocí FIDO U2F ve Firefoxu zajistit pouze pomocí doplňku.

Ladislav Hagara | Komentářů: 4
včera 06:00 | Humor

Adobe PSIRT (Adobe Product Security Incident Response Team) neúmyslně zveřejnil (archive) na svém blogu svůj soukromý OpenPGP klíč. Klíč byl revokován a vygenerován nový. Nelze nezmínit xkcd 1553 - Veřejný klíč.

Ladislav Hagara | Komentářů: 1
24.9. 20:00 | Nová verze

Byla vydána (cgit) verze 0.99 svobodného nelineárního video editoru Pitivi. Jedná se o release candidate verze 1.0. Přehled úkolů, které je nutno ještě dodělat, na Phabricatoru. Pitivi je k dispozici také ve formátu Flatpak.

Ladislav Hagara | Komentářů: 1
24.9. 17:11 | Komunita

Microsoft s Canonicalem představili linuxové jádro Ubuntu optimalizováno pro cloudové služby Microsoft Azure (linux-azure). Jako výchozí je toto menší a výkonnější jádro použito již v Ubuntu Cloud Images for Ubuntu 16.04 LTS. Canonical zatím nenabízí patchování tohoto jádra za běhu systému (Canonical Livepatch Service).

Ladislav Hagara | Komentářů: 1
24.9. 14:55 | Komunita

Facebook oznámil, že přelicencuje open source projekty React, Jest, Flow a Immutable.js ze své vlastní kontroverzní licence BSD+Patents na licenci MIT. Stane se tak tento týden s vydáním Reactu 16. Jedním z důvodů přelicencování bylo oznámení nadace Apache, že software pod Facebook BSD+Patents licencí nesmí být součástí produktů pod touto nadací [Hacker News].

Ladislav Hagara | Komentářů: 0
23.9. 21:44 | Nová verze

Po půl roce od vydání verze 9.0 byla vydána verze 10.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 1
22.9. 18:11 | Nová verze

Společnost Oracle oficiálně oznámila vydání Java SE 9 (JDK 9), Java Platform Enterprise Edition 8 (Java EE 8) a Java EE 8 Software Development Kit (SDK). Java SE 9 přináší více než 150 nových vlastností.

Ladislav Hagara | Komentářů: 0
Těžíte nějakou kryptoměnu?
 (5%)
 (3%)
 (17%)
 (75%)
Celkem 581 hlasů
 Komentářů: 23, poslední 24.9. 18:12
    Rozcestník

    Dotaz: První program v Bash

    8.3.2008 10:20 kuzmic
    První program v Bash
    Přečteno: 1468×
    Dobrý den, chtěl bych poprosit někoho kdo umí programovat v Bash, jak naprogramovat abych spouštěl skript například s parametrem ./pokus.sh -o abc a po zvolení toho parametru mi to třba něco vypsalo. předem díky

    Odpovědi

    8.3.2008 11:04 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: První program v Bash
    Takhle, jak jste požadavek napsal, tam máte ten parametr úplně zbytečný a může se ignorovat:
    #!/bin/bash
    echo "Třeba něco vypisuji."
    
    Pokud byste chtěl používat parametry typu -o abc, podívejte se na man getopt.
    8.3.2008 11:06 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    děkuju, ale jde o to, že musím udělat program ( školní projekt ) kde musím ten skript spustit s parametrem, jinak bych to udělal takhle. Ale nějak se mi to nedaří.
    8.3.2008 11:18 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: První program v Bash
    Ten skript klidně s parametrem spustit můžete. Ale dokud tomu parametru nepřiřadíte nějaký význam (třeba že se má vypsat hodnota toho parametru), je tam na nic. A když už něco takového po vás chtějí ve škole, měli by vás to také naučit (to za prvé, a je to ta méně podstatná část) a hlavně by vás měli naučit správně popsat zadání (to se vám bude v životě hodit nejenom při programování).
    8.3.2008 11:23 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    ne ne tohle po nás ve škole nechtějí, tuhle ptákovinu jsem tu napsal já, chtěl jsem podle ní pochopit ty parametry. zadání je podstatně náročnější, jen jaksi programování není moje silná stránka tak hledám všemožný způsoby jak se to naučit
    8.3.2008 12:05 Filip Jirsák | skóre: 66 | blog: Fa & Bi
    Rozbalit Rozbalit vše Re: První program v Bash
    V tom případě to bude vypadat třeba nějak takhle:
    #!/bin/bash
    #parsování parametrů příkazové řádky
    PARAMETRY=`getopt -q -o o:h:s:v: -- "$@"`
    
    if [ $? != 0 ] ; then echo "Chybně zadané parametry" ; exit 1 ; fi
    
    eval set -- "$PARAMETRY";
    
    #připravení výchozích hodnot proměnných
    
    DIR="comments"
    HOD="hodnoceni.txt"
    STUD="students.txt"
    
    while true ; do
        case "$1" in
            -o)  DIR="$2" ; shift 2;;
            -h)  HOD="$2" ; shift 2;;
            -s)  STUD="$2" ; shift 2;;
            -v)  if [ -n "$2" ] ; then VAR="$2" ; fi ; shift 2;;
            --)  shift ; break ;;
            *) echo "Neznámý parametr" ; exit 2 ;;
        esac
    done
    
    #nyní máte v proměnných $DIR, $HOD, $STUD, $VAR potřebné hodnoty (případně $VAR není definována)
    echo $DIR
    echo $HOD
    echo $STUD
    echo ${VAR:-"-- nezadáno --"}
    
    Pomůžou vám k tomu man bash, man getopt, man test
    8.3.2008 11:11 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: První program v Bash

    Zde je žádaný kanón na vrabce :-)

    volby="-o tl:"
    getopt -Qq $volby -- "$@" || exit 1;
    
    eval set -- `getopt -q $volby -- "$@"`;
    
    ...
    
    while [ $# -gt 1 ]; do
        case $1 in
            -l)  něco, když je -l param; shift 2;;
            -t)  parametr -t; shift 1;;
            *) něco jíného; shift;;
        esac
    done
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    8.3.2008 11:13 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    děkuji, hned ten kanom oprubnu:-)
    8.3.2008 11:35 vr
    Rozbalit Rozbalit vše Re: První program v Bash
    Dalsi moznosti je, ze to prepisete z ukazkoveho prikladu, ktery je distribuovan s getopt. Ja ho mam v /usr/share/getopt/getopt-parse.bash.
    8.3.2008 11:43 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    #!/bin/bash
    
    volby="-o t1:"
    getopt -Qq $volby -- "$@" || exit 1;
    
    eval set -- `getopt -q $volby -- "$@"`;
    
    while [ $# -gt 1 ];
    do
    	case $1 in
    		-l) echo "tohle je parametr l"; shift 1;;
    		-t) echo "parametr -t"; shift 1;;
    		*) echo "něco jiného"; shift;;
    	esac
    done
    
    takhle jsem to přepsal, ale po spuštění a zadání například ./pokus.sh -l mi to nic nevypíše, ale třeba pro -t ano. nevíte kde je zrada?
    David Watzke avatar 8.3.2008 12:01 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: První program v Bash
    Víme, místo:
    volby="-o t1:"
    tam dej:
    volby="-o tl:"
    (dvojtečka za "l" znamená, že ten přepínač bude chtít argument)
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    8.3.2008 12:09 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    super:-)
    8.3.2008 12:11 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: První program v Bash

    Zrada je také v prvním použití getopt s parametrem pro tichý výpis a také, že pokud selže, tak se celý skript ukončí (|| exit 1;).

    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    8.3.2008 12:12 vr
    Rozbalit Rozbalit vše Re: První program v Bash
    Nevim, ale zkracena verze ukazkoveho prikladu getopt-parse.bash (nazval jsem ji ukazka2) je
    #!/bin/bash
    
    TEMP=`getopt -o o:  -n 'ukazka2' -- "$@"`
    
    if [ $? != 0 ] ; then echo "Koncim..." >&2 ; exit 1 ; fi
    eval set -- "$TEMP"
    
    while true ; do
      case "$1" in
        -o) echo "Volba o, argument \`$2'" ; shift 2 ;;
        --) shift ; break ;;
        *) echo "Internal error!" ; exit 1 ;;
      esac
    done
    echo "Zbyvajici argumenty:"
    for arg do echo '--> '"\`$arg'" ; done
    
    V originalni verzi najdete i spoustu vysvetlujich komentaru. Spis bych doporucil vydat se timto smerem.
    8.3.2008 12:44 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    jenomže on je problem, že mi v tom programu nemužeme využít dočasný soubory
    8.3.2008 12:48 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: První program v Bash

    A kde je tam vidíte?

    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    8.3.2008 12:51 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: První program v Bash
    Spis bych doporucil vydat se timto smerem.

    Naprosto souhlasím, ten můj původní kód jsem totiž pouze vykopíroval z jednoho skriptu a pouze doplnil komentáře - do skriptu se totiž vše předávalo pomocí voleb, takže jsem část za (případným) -- s klidem ignoroval.

    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    8.3.2008 12:57 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    bylo by možné domluvit se na icq? 211658769. Předem moc děkuji
    8.3.2008 12:14 kuzmic
    Rozbalit Rozbalit vše Re: První program v Bash
    ještě bych se chtěl zeptat co přesně vykonají tyhle dva řádky:
    getopt -Qq $volby -- "$@" || exit 1;
    
    eval set -- `getopt -q $volby -- "$@"`;
    
    8.3.2008 12:47 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: První program v Bash
    getopt -Qq $volby -- "$@" || exit 1;

    Spustí getopt s danými volbami a otestuje jejich správnost (a v případě chyby nic nevypíše) - pokud nastane chyba (neznámý parametr atp.), tak je skript ukončen (spojka ||).

    eval set -- `getopt -q $volby -- "$@"`;

    Nastaví upravené parametry (tj. např. -ab rozdělí na 2 samostatné: -a a -b atd.) do proměnných $1, $2 ...

    I am always ready to learn although I do not always like to be taught. (W. Churchill)

    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.