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í
×
    včera 23:33 | IT novinky

    Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.

    Ladislav Hagara | Komentářů: 1
    3.7. 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ářů: 5
    3.7. 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
    3.7. 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
    3.7. 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ářů: 7
    2.7. 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
    2.7. 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
    2.7. 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
    2.7. 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ářů: 9
    2.7. 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
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2053 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: bash argumenty spouštění a system property javy

    16.10.2008 10:57 Pev | skóre: 28
    bash argumenty spouštění a system property javy
    Přečteno: 563×
    Dobrý den,

    pomocí bash skriptu spouštím javovský program.

    Používám getopts na pársování parametrů, parametry jsou většinou normální:
    -l soubor
    -v
    -q
    -P soubor
    
    Problém je v tom, že bych potřeboval, aby tam šel dát i prarametr javovské system properties, tedy něco jako
    -Dparam=value
    -Dfoo=bar
    
    Getopts očekávají jediné písmenko, tak je to zmate. Situaci ještě komplikuje skutečnost, že ty -D parametry by tam měly být víckrát než jednou.

    Zkoušel jsem -D parametry odchytit na začátku pomocí regulárních výrazů, ale nějak je nedokážu pomocí bashe odstranit (ani tento návod nepomohl). Řešení by totiž bylo uložit tyto volby do samostatné proměné, a hlavně je odfiltrovat z parametrů getopts. Mám na to použít externí nástroj (sed, awk, expr, ...)?

    Ideální by bylo, kdyby ten způsob nebyl bash only, ale fungoval třeba i v dash a ksh, ...

    Jo, určitě by šlo udělat mapování voleb na jednotlivé system properties (tj. -f ve výsledku předá jave -Dfoo=bar), ale to není to co hledám.

    Ještě, jde v bash implementaci getopts použít long options, jako jdou třeba v pythonu?

    Díky za tipy.

    Odpovědi

    16.10.2008 14:14 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash argumenty spouštění a system property javy
    Místo getopts je možné použít getopt, který podporuje dlouhé volby:
    #!/usr/bin/env bash
    #set -x
    
    scriptname=`basename $0`
    args=`getopt -n "$scriptname" -o v: --long arg1:,arg2:,arg3 -- "$@"`
    eval set -- "$args"
    
    while true; do
    	case "$1" in
    		--arg1)
    			echo "arg1: $2"; shift 2
    			;;
    		--arg2)
    			echo "arg2: $2"; shift 2
    			;;
    		--arg3)
    			echo "arg3: $2"; shift 2
    			;;
    		-v)
    			echo "volba v: $2"; shift 2
    			;;
    		--)
    			break
    			;;
    	esac
    done
    Volání scriptu:
    ./run.sh --arg1 123 --arg1 456 --arg1=789 -v konec
    arg1: 123
    arg1: 456
    arg1: 789
    volba v: konec
    V man je uvedeno, že getopt je podporován v těchto shellech: sh, bash, csh, tcsh.
    16.10.2008 14:55 Pev | skóre: 28
    Rozbalit Rozbalit vše Re: bash argumenty spouštění a system property javy
    Díky moc za tip, jak používat dlouhé volby.

    Teď zůstává ještě vyřešit ty system properties.

    Představoval jsem si to, že by to nějak bylo schopné odfiltrovat všechny -D[^=]\+=[^ ]\+, ale to bych asi chtěl moc :-(.
    16.10.2008 15:37 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash argumenty spouštění a system property javy
    Můžete uvést konkrétní příklad. Nepochopil jsem přesně jaký bude vstup a co by jste z toho chtěl mít na výstupu.
    19.10.2008 18:11 luky
    Rozbalit Rozbalit vše Re: bash argumenty spouštění a system property javy
    Nechapu proc by getopts melo byt zmatene, nebo proc by vicenasobny vyskyt -D mel cokoliv komplikovat. Nemuzu rict, ze jsem pochopil o co vam jde, ale zkratka uplne stejne jako zpracovavate ostatni volby, muzete zpracovavat i to -D, at uz s nim zamyslite cokoliv.
    $ cat xx.sh
    #!/bin/bash
    while getopts "D:" OPT; do
            echo "$OPT $OPTARG"
    done
    $ ./xx.sh -D x -Dy -D foo=bar -Djoe=doe
    D x
    D y
    D foo=bar
    D joe=doe
    

    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.