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:33 | Bezpečnostní upozornění

Před šesti týdny byly publikovány výsledky bezpečnostního auditu zdrojových kódů OpenVPN a nalezené bezpečnostní chyby byly opraveny ve verzi OpenVPN 2.4.2. Guido Vranken minulý týden oznámil, že v OpenVPN nalezl další čtyři bezpečnostní chyby (CVE-2017-7520, CVE-2017-7521, CVE-2017-7522 a CVE-2017-7508). Nejzávažnější z nich se týká způsobu, jakým aplikace zachází s SSL certifikáty. Vzdálený útočník může pomocí speciálně

… více »
Ladislav Hagara | Komentářů: 0
včera 06:55 | Zajímavý projekt

V Edici CZ.NIC vyšla kniha Průvodce labyrintem algoritmů. Kniha je ke stažení zcela zdarma (pdf) nebo lze objednat tištěnou verzi za 339 Kč (připojení přes IPv4) nebo 289 Kč (připojení přes IPv6).

Ladislav Hagara | Komentářů: 6
včera 06:33 | Zajímavý software

Byla vydána verze 2.2.0 svobodného správce hesel KeePassXC (Wikipedie). Jedná se o komunitní fork správce hesel KeePassX s řadou vylepšení.

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

Vývojář Debianu Henrique de Moraes Holschuh upozorňuje v diskusním listu debian-devel na chybu v Hyper-Threadingu v procesorech Skylake a Kaby Lake od Intelu. Za určitých okolností může chyba způsobit nepředvídatelné chování systému. Doporučuje se aktualizace mikrokódu CPU nebo vypnutí Hyper-Threadingu v BIOSu nebo UEFI [reddit].

Ladislav Hagara | Komentářů: 0
24.6. 01:23 | Komunita

Phoronix spustil 2017 Linux Laptop Survey. Tento dotazník s otázkami zaměřenými na parametry ideálního notebooku s Linuxem lze vyplnit do 6. července.

Ladislav Hagara | Komentářů: 3
23.6. 22:44 | Nová verze

Po třech měsících vývoje od vydání verze 5.5.0 byla vydána verze 5.6.0 správce digitálních fotografií digiKam (digiKam Software Collection). Do digiKamu se mimo jiné vrátila HTML galerie a nástroj pro vytváření videa z fotografií. V Bugzille bylo uzavřeno více než 81 záznamů.

Ladislav Hagara | Komentářů: 1
23.6. 17:44 | Nová verze

Byla vydána verze 9.3 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. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 3
23.6. 13:53 | Nová verze

Simon Long představil na blogu Raspberry Pi novou verzi 2017-06-21 linuxové distribuce Raspbian určené především pro jednodeskové miniaturní počítače Raspberry Pi. Společně s Raspbianem byl aktualizován také instalační nástroj NOOBS (New Out Of the Box Software). Z novinek lze zdůraznit IDE Thonny pro vývoj v programovacím jazyce Python a především offline verzi Scratche 2.0. Ten bylo dosud možné používat pouze online. Offline bylo možné používat pouze Scratch ve verzi 1.4. Z nového Scratchu lze ovládat také GPIO piny. Scratch 2.0 vyžaduje Flash.

Ladislav Hagara | Komentářů: 1
22.6. 14:24 | Nová verze

Opera 46, verze 46.0.2597.26, byla prohlášena za stabilní. Nejnovější verze tohoto webového prohlížeče je postavena na Chromiu 59. Z novinek lze zmínit například podporu APNG (Animated Portable Network Graphics). Přehled novinek pro vývojáře na blogu Dev.Opera. Oznámení o vydání zmiňuje také první televizní reklamu.

Ladislav Hagara | Komentářů: 0
22.6. 13:37 | IT novinky

I čtenáři AbcLinuxu před dvěma lety vyplňovali dotazníky věnované Retro ThinkPadu. Nyní bylo potvrzeno, že iniciativa Retro ThinkPad je stále naživu a Lenovo připravuje speciální edici ThinkPadu jako součást oslav jeho 25. výročí.

Ladislav Hagara | Komentářů: 34
Chystáte se pořídit CPU AMD Ryzen?
 (6%)
 (31%)
 (1%)
 (9%)
 (44%)
 (9%)
Celkem 842 hlasů
 Komentářů: 65, poslední 1.6. 19:16
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Jak zjednodušit tento příkaz

    pepe_ avatar 8.11.2013 00:55 pepe_ | skóre: 47
    Jak zjednodušit tento příkaz
    Přečteno: 785×
    celkem=$(ls -1 /usr/share/fortune/cs/*.dat | wc -l ) ; soubor=$(( $RANDOM % $celkem )) ; rec=$(ls -1 /usr/share/fortune/cs/*.dat | head -n $soubor | tail -1) ; fortunik=${rec%%.*} ; fortune $fortunik

    Je vyžadován nainstalovaný program fortune,fortune-mod-cs

    Řešení dotazu:


    Odpovědi

    8.11.2013 06:29 Petr MOTEJLEK | skóre: 6
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Ahoj,

    Jen, jestli tomu dobře rozumím - tobě jde o vybrání náhodného souboru z konkrétního adresáře a spuštění programu fortune nad tím souborem, ano?
    pepe_ avatar 8.11.2013 09:24 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Ano , v archu mám :

    ls /usr/share/fortune/cs
    cimrman      citat.dat  hornicek        ignac.dat   klasik-cz      lkml.dat    mikulas      murphy.dat     plihal        pratchett.dat  reddwarf      stoa1.dat   vodnansky      wodehouse.dat
    cimrman.dat  filmy      hornicek.dat    jerome      klasik-cz.dat  lodge       mikulas.dat  parafraze      plihal.dat    prislovi       reddwarf.dat  stopar      vodnansky.dat  wright
    citace       filmy.dat  chesterton      jerome.dat  klasik-sk      lodge.dat   mladik       parafraze.dat  pocitace      prislovi.dat   skala         stopar.dat  wikiquote      wright.dat
    citace.dat   guth       chesterton.dat  josef       klasik-sk.dat  market      mladik.dat   parkinson      pocitace.dat  rdvcitaty      skala.dat     valka       wikiquote.dat  zemeplocha
    citat        guth.dat   ignac           josef.dat   lkml           market.dat  murphy       parkinson.dat  pratchett     rdvcitaty.dat  stoa1         valka.dat   wodehouse      zemeplocha.dat
    
    

    Chci dát do bashrc kde nyní mám

    #
    # ~/.bashrc
    #
    
    # If not running interactively, don't do anything
    [[ $- != *i* ]] && return
    
    alias ls='ls --color=auto'
    PS1="\[\033[0;37m\]\342\224\214\342\224\200\$([[ \$? != 0 ]] && echo \"[\[\033[0;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\")[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[0;31m\]\h'; else echo '\[\033[0;33m\]\u\[\033[0;37m\]@\[\033[0;96m\]\h'; fi)\[\033[0;37m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;37m\]]\n\[\033[0;37m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]"
    alias pacman='sudo pacman'
    alias nmap='sudo nmap -sV -O -v '
    alias ssh='ssh -X -C '
    export EDITOR="mcedit"
    celkem=$(ls -1 /usr/share/fortune/cs/*.dat | wc -l ) ; soubor=$(( $RANDOM % $celkem )) ; rec=$(ls -1 /usr/share/fortune/cs/*.dat | head -n $soubor | tail -1) ; fortunik=${rec%%.*} ; echo -e "Hláška '"${fortunik##*/}"'\n" ; fortune $fortunik
    



    alias kec= .....          ale ten dlouhej příkaz ze stejnou funkcí mi to nežere

     

    takže potřebuju něco aby ve složce usr/share/fortune/cs/ spočítalo počet souborů bez koncovky .dat , pak náhodně jeden vybralo a spustilo se správným parametrem fortune.

    8.11.2013 09:11 NN
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Treba, ale urcite se najde optimalnejsi nahodny vyber:
    fortune `find * -name '*.txt' -print | sort -R | head -n1 | sed s/\.txt//`
    pepe_ avatar 8.11.2013 09:26 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Jo je to asi lepší :   find /usr/share/fortune/cs/* -name '*.dat' -print | sort -R | head -n1 | sed s/\.dat//

    8.11.2013 09:41 potato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    find /usr/share/fortune/cs/*

    určitě není lepší. Pokud jsou tam jen soubory, není zapotřebí find vůbec

    ls /usr/share/fortune/cs/*.dat

    Pokud tam jsou i adresáře, tak je nesmysl expandovat argument findu

    find /usr/share/fortune/cs -name '*.dat'
    pepe_ avatar 8.11.2013 09:46 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Asi nerozumíš jednoduchému dotazu že se nesmí zobrazovat soubory .dat  ale bez přípony a to s uvedením cesty nijak nezkrátí. příkaz.

    To co je ve složce je již v předchozích příspěvcích ukázáno.

    8.11.2013 09:50 potato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Asi nerozumíš tomu, že mluvím o findu. Musím ti tam skutečně nakopírovat celý zbytek té roury, který se nemění?
    pepe_ avatar 8.11.2013 10:07 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    rec=$(find /usr/share/fortune/cs -name '*.dat' | sort -R | head -n1 | sed s/\.dat//) ; echo -e "Hláška -"${rec##*/}"-\n" ; fortune $rec ; echo

     

    Dobře , zkráceno podle tebe (nějak sem si přečetl jen začátek a konec tvé reakce)

    Fuky avatar 9.11.2013 10:08 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    sort -R | head -n1

    lze zkrátit na:

    shuf -n1

    How can I select random files from a directory in bash?
    pepe_ avatar 9.11.2013 11:08 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Děkuji , to jsem vůbec nikde nenašel .

    rADOn avatar 8.11.2013 13:46 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    To co chces je standartni chovani programu fortune (plus ti to jeste znormalizuje podle poctu fortunek v jednotlivych souborech), co te nuti objevovat zrovna tohle kolo?
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    pepe_ avatar 8.11.2013 23:46 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Bohuzel standartni chovani neni vypsat nazev databaze hlasek ze ktere se prave ukazuje text a take ze nechci jinou nez slozku cesky .

    Řešení 2× (Cubic, Patrik Uhrak)
    rADOn avatar 13.11.2013 14:47 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    fortune -c /usr/share/fortune/cs
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    pepe_ avatar 13.11.2013 15:18 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    To je opravdu easy , díky !

    rADOn avatar 13.11.2013 17:11 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Doufám že sis z toho vzal poučení :-)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    9.11.2013 10:52 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    A takto by to neslo:

    fortunecz(){ set *.dat; chosen=$(( $RANDOM % $# )); eval fortune \${${chosen}%%.*};}

    a dat to do ~/.bashrc napr. ako ste navrhli ?

    pepe_ avatar 9.11.2013 11:07 pepe_ | skóre: 47
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    #fortunecz
    fortune:/bin/bash not a fortune file or directory
    No fortunes found

    ne takto mi to nefunguje

    9.11.2013 11:30 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Nefunguje, bo som zabudol na adresar:

    fortunecz(){ dir=/usr/share/fortune/cs/; set "$dir"/*.dat; chosen=$(( $RANDOM % $# )); eval fortune \${${chosen}%%.*}; }

    Som to odskusal priamo v adresare s nimi, tak sa chybicka vloudila. Ale inak u mna to funguje.

    9.11.2013 12:08 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Taktiez je problem, ze premenna chosen niekedy ma hodnotu 0, co je shell samotny. Bud zavolat random znova, alebo jednoducho takto ( a ma tu mozno za to aj dakto zozerie :) ):

    fortunecz(){ dir=/usr/share/fortune/cs/; set "$dir"/*.dat; chosen=$(( $RANDOM % $# + 1 )); eval fortune \${${chosen}%%.*}; }
    9.11.2013 12:29 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz

    Ok, ja dneska koncim uz, lebo co je moc, to je moc. Fortune sice vzdy vrati daco, ale problem je, ze tym pripocitanim 1 sa sice odstrani chyba ohladne volania $0, ale na hornom konci rozsahu bude hodnota $n prazdna a fortune zoberie hlasku aj z ineho ako ceskeho adresara. Takze takto by to mohlo byt, aspon ja by som bol spokojny:

    fortunecz(){ dir=/usr/share/fortune/cs/; set "$dir"/*.dat; chosen=$(( $RANDOM % $# )); [[ $chosen -eq 0 ]] && let chosen++; eval fortune \${${chosen}%%.*}; }

    Mojim cielom bolo cisto v bash-i to vyriesit, lebo si osobne myslim, ze volat find, tail, sort pre tuto ulohu je zbytocne. p.s: Asi by som mal mat daky casovy limit vynuteny po zobrazeni nahladu, kedy sa postavim zo stolicky a zacnem aj premyslat, nez nieco odoslem. :)

    Fuky avatar 9.11.2013 18:31 Fuky | skóre: 52 | blog: 4u
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Lze to řešit i následovně:

    $ f=( /path/*.dat ) result="${f[RANDOM%${#f[@]}]%.dat}" && fortune "${result##*/}"

    Nevidím jediný rozumný důvod proč to řešit čistě v Bashi. Oproti volání find a shuf je to výrazně méně čitelné.

    BTW: Jinak co se týče Bashe, určitě bych se snažil vyhnout psát v něm co rozsáhlejšího, skripty jsou hodně nečitelné a špatně udržovatelné. Rozhodně je mnohem lepší použít Python.
    13.11.2013 17:18 Pavel
    Rozbalit Rozbalit vše Re: Jak zjednodušit tento příkaz
    Nebo Perl... :-D

    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.