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 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

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

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 0
    včera 10:11 | IT novinky

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    včera 02:11 | Zajímavý článek

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

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

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

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

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 4
    18.12. 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 6
    18.12. 12:22 | Bezpečnostní upozornění

    Rozšíření webového prohlížeče Urban VPN Proxy a další rozšíření od stejného vydavatele (např. 1ClickVPN Proxy, Urban Browser Guard či Urban Ad Blocker) od července 2025 skrytě zachytávají a odesílají celé konverzace uživatelů s AI nástroji (včetně ChatGPT, Claude, Gemini, Copilot aj.), a to nezávisle na tom, zda je VPN aktivní. Sběr probíhá bez možnosti jej uživatelsky vypnout a zahrnuje plný obsah dotazů a odpovědí, metadata relací i

    … více »
    Ladislav Hagara | Komentářů: 5
    18.12. 05:22 | Zajímavý software

    QStudio, tj. nástroj pro práci s SQL podporující více než 30 databází (MySQL, PostgreSQL, DuckDB, QuestDB, kdb+, …), se stal s vydáním verze 5.0 open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 6
    Kdo vám letos nadělí dárek?
     (13%)
     (0%)
     (0%)
     (0%)
     (6%)
     (6%)
     (19%)
     (31%)
     (25%)
    Celkem 16 hlasů
     Komentářů: 11, poslední dnes 07:16
    Rozcestník

    Dotaz: Cast skriptu..kontrola parametru a IF

    6.6.2005 17:32 xhonzax | skóre: 1
    Cast skriptu..kontrola parametru a IF
    Přečteno: 135×
    Potrebuju aby tato cast skriptu zkontrolovala jestli uzivatel, ktery je zadavan jako parametr skriptu existuje nebo jestli bylo zadano all...jinak konec s chybobou hlaskou>>

    if test $1 != "cat /etc/passwd | grep ^[^:]*:[^:]*:[^:]*|cut -f 1 -d ":"" || test $1 != all
    then
    echo "Zadali jste uzivatele, ktery neexistuje, tudiz nespustil zadne procesy"
    exit
    fi

    Toto mi nefunguje, jak to upravit? Diky moc za odpovedi Honza

    Odpovědi

    6.6.2005 17:48 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    "cat /etc/passwd | grep ^[^:]*:[^:]*:[^:]*|cut -f 1 -d ":""
    je nesmysl, to se expanduje na ten řetězec v uvozovkách, měls asi na mysli $(...) nebo `...`, i tak by to moc nefungovalo.

    No nic, nejlepší co jsem vymyslel je
    if cut -d: -f1 | grep -F -x -q "$1"; then
      echo "OK"
    else
      echo "neexistuje"
    fi
    
    najdi si v man grep co ty optiony znamenají (btw asi nebudou přenositelné)

    Aby to bylo skutečně korektní, tak by to chtělo C prográmek, co zavolá getpwnam(argv[1]).
    6.6.2005 17:49 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    cut -d: -f1 /etc/passwd samozřejmě.
    6.6.2005 17:58 xhonzax | skóre: 1
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Dekuju. Funguje to.
    6.6.2005 21:08 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Vím, že na Python se tu nikdo neptal, ale funguje mi tohle:
    #!/usr/bin/env python
    import pwd
    
    user = 'all'
    
    if (cmp(user,'all')):
      try:
        print pwd.getpwnam(user)
      except KeyError:
        print "Tento uzivatel neexistuje"
    else:
      print "Tohle se tyka vsech uzivatelu"
    
    Odteďka chci mít všude login "all" ;-)
    6.6.2005 21:46 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    IMHO to děláte zbytečně složitě, stačí využít návratový kód (e)grepu:
    if egrep -q "^${1}:" /etc/passwd || [ "x$1" = xall ]; then
      echo OK
    else
      echo chyba
    fi
    
    6.6.2005 22:06 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Tohle je zase až moc jednoduše, nehlídá to tečky a pod. v "$1" ("regexp injection"? :-)).
    6.6.2005 22:36 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    OK, OK, tak se z toho nejdřív vyházejí nepohodlné znaky:
      x=`echo "$1" | LC_CTYPE=C tr -cd '[a-zA-Z0-9_]'`
      if [ "x$1" != "x$x" ];
        echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-)
        exit 1
      fi
    

    Na druhou stranu, kdyby si s tím člověk trochu pohrál, mohl by v tom být i určitý záměr: mohl by se zadávat regulární výraz a hledaly by se procesy kteréhokoli uživatele, který mu vyhovuje (nebo co to měl ten skript dělat)… :-)

    7.6.2005 00:45 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    :-)

    BTW, nevíte kde má původ ten zápis
    test "x$param" = "xvalue"
          ^           ^
    
    ? Používá to i Autoconf, takže asi existoval systém, kde nefungoval test s prázdným parametrem, ale netuším jaký (PDP-11 ve škole nemáme :-)).
    7.6.2005 00:58 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Ten problém není AFAIK kvůli prázdným parametrům, ale kvůli parametrům, které vypadají jako standardní podmínky příkazu test. Nějak se mi ale nedaří vyrobit nějaký dostatečně úderný příklad ('test -e = -f' i 'test -e = -e' mi kupodivu fungují správně s interním i externím testem).
    7.6.2005 01:19 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    A jo. GNU test, bash, ash a pdksh (víc toho u sebe nemám) se chovají podle očekávání; našel jsem tohle
    $ uname -srv 
    IRIX64 6.5 04091957
    $ /usr/bin/test -n = blabla; echo $?
    0
    
    Takže smysl to asi má pořád.
    7.6.2005 10:53 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
      x=`echo "$1" | LC_CTYPE=C tr -cd '[a-zA-Z0-9_]'`
      if [ "x$1" != "x$x" ];
        echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-)
        exit 1
      fi
    
    To se nám to krásně zjednodušilo. Až na ten fork, fork, exec a přitom je to úplně zbytečné.
    case "$1" in
        *[^a-zA-Z0-9_]*)
             echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-)
             exit 1;;
    esac
    To je ekvivalent uvedeného, ale víc jak 20x rychlejší. Nechce hledat přesné omezení na username abych to napsal přesněji.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.6.2005 11:28 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Bez case je to ještě jednodušší
    [[ "$1" == *[^a-zA-Z0-9_]* ]] && {
      echo "Nech toho, darebáku, sic ti hnáty zpřerážím!" # :-)
      exit 1
    }
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.6.2005 13:06 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Všichni jste ostudy. Nikoho nenapadlo použít to nejjednodužší a nejbezpečnější řešení.
    if ! id "$1" >&/dev/null && [ "x$1" != xall ]
    then
        echo "Zadali jste uzivatele, ktery neexistuje, tudiz nespustil zadne procesy"
        exit 1
    fi
    P.S.: Ano, opravdu tam má být && a ne || protože chyba nastane, když uživatel není a zároveň není zadáno all.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.6.2005 13:26 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Sakra :-) já věděl, že něco takového musí existovat, ale odradil mě finger
    $ finger chroustal; echo $?
    finger: chroustal: no such user.
    0
    
    7.6.2005 13:40 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Já jsem jsem přesvědčený, že jsem někde viděl utilitu, která byla ekvivalentem getpwnam(3), ale nemůžu se teď spomenout ani ji nikde najít. To přece není možné aby taková utilita nebyla. To by bylo padlé nahlavu, přece nebudu při zjišťování uživatelova shellu parsovat passwd(5). Nehledě na to, že tam taky vůbec nemusí být.
    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    7.6.2005 18:45 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    Přinejhorším by nebyl problém si ji za chvíli napsat…
    7.6.2005 18:50 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Cast skriptu..kontrola parametru a IF
    No jo, něco v tom duchu mne napadlo, jenže jsem zkoušel laborovat s něčím ve stylu ~$1, ale když jsem zjistil, že pořadí expanzí je opačné, než bych potřeboval, opustil jsem tuto cestu a vrhnul se na parsování /etc/passwd. Na druhou stranu, v praxi bych to asi stejně radši napsal v céčku…

    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.