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 04:44 | Nová verze

    Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 0
    dnes 01:11 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.2 a 20.04 OTA-12.

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

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.0 otevřeného operačního systému pro chytré hodinky AsteroidOS (Wikipedie). Přehled novinek v oznámení o vydání a na YouTube.

    Ladislav Hagara | Komentářů: 1
    včera 16:00 | Zajímavý software

    WoWee je open-source klient pro MMORPG hru World of Warcraft, kompatibilní se základní verzí a rozšířeními The Burning Crusade a Wrath of the Lich King. Klient je napsaný v C++ a využívá vlastní OpenGL renderer, pro provoz vyžaduje modely, grafiku, hudbu, zvuky a další assety z originální kopie hry od Blizzardu. Zdrojový kód je na GitHubu, dostupný pod licencí MIT.

    NUKE GAZA! 🎆 | Komentářů: 4
    včera 13:33 | IT novinky

    Byl představen ICT Supply Chain Security Toolbox, společný nezávazný rámec EU pro posuzování a snižování kybernetických bezpečnostních rizik v ICT dodavatelských řetězcích. Toolbox identifikuje možné rizikové scénáře ovlivňující ICT dodavatelské řetězce a na jejich podkladě nabízí koordinovaná doporučení k hodnocení a mitigaci rizik. Doporučení se dotýkají mj. podpory multi-vendor strategií a snižování závislostí na vysoce

    … více »
    Ladislav Hagara | Komentářů: 4
    včera 12:22 | Humor

    Nizozemský ministr obrany Gijs Tuinman prohlásil, že je možné stíhací letouny F-35 'jailbreaknout stejně jako iPhony', tedy upravit jejich software bez souhlasu USA nebo spolupráce s výrobcem Lockheed Martin. Tento výrok zazněl v rozhovoru na BNR Nieuwsradio, kde Tuinman naznačil, že evropské země by mohly potřebovat větší nezávislost na americké technologii. Jak by bylo jailbreak možné technicky provést pan ministr nijak nespecifikoval, nicméně je známé, že izraelské letectvo ve svých modifikovaných stíhačkách F-35 používá vlastní software.

    NUKE GAZA! 🎆 | Komentářů: 21
    včera 06:00 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 05:55 | IT novinky

    Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně

    … více »
    Ladislav Hagara | Komentářů: 9
    18.2. 18:33 | IT novinky

    Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.

    Ladislav Hagara | Komentářů: 7
    18.2. 16:22 | Komunita

    Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (6%)
     (0%)
     (11%)
     (27%)
     (3%)
     (5%)
     (2%)
     (12%)
     (27%)
    Celkem 908 hlasů
     Komentářů: 25, poslední 3.2. 19:50
    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: 48
    Jak zjednodušit tento příkaz
    Přečteno: 884×
    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: 48
    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: 48
    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: 48
    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: 48
    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: 48
    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: 48
    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: 48
    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: 48
    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.