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 05:00 | Nová verze

    Byla vydána verze 1.98.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 19:11 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Nová verze

    Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

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

    Společnost PINE64 kvůli nedostatku a vysokým cenám DRAM a eMMC dočasně pozastavuje výrobu linuxových zařízení. Výroba zařízení jako PineTime, PineVoice a Pinecil pokračuje.

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

    Společnost Stripe se dohodla na akvizici společnosti OpenRouter. Za 7,5 miliardy dolarů.

    Ladislav Hagara | Komentářů: 0
    včera 01:33 | Nová verze

    Byla vydána nová verze 1.27 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    19.8. 16:00 | Pozvánky

    V pátek 28. srpna se v Praze uskuteční již osmý Mobile Linux Hackday. Jako obvykle se potkáme v pražské pobočce SUSE v Karlíně na Křižíkově, takže kromě mobilního Linuxu je to tentokrát i příležitost přijít se podívat na nově zrekonstruované kanceláře. Začínáme v 10:00, ale dorazit můžete samozřejmě kdykoliv v průběhu dne. Setkáním vás provede Petr Hodina, vývojář GPU ovladačů v Mesa 3D a jeden z hlavních lidí české komunity kolem mobilního … více »

    lkocman | Komentářů: 0
    19.8. 14:11 | IT novinky

    Představen byl Raspberry Pi Compute Module 5 Programming Jig. Jedná se o zařízení umožňující připravit Compute Module 5 do plně funkčního stavu bez nutnosti použití dalších vstupně / výstupních desek. Podporuje automatizaci pomocí nástroje rpi-sb-provisioner. Podrobnosti v dokumentaci.

    Ladislav Hagara | Komentářů: 1
    19.8. 05:55 | IT novinky

    Hackeři ve Francii ukradli data více než půl milionu daňových poplatníků. Je to jeden z největších hackerských útoků v dějinách země. O útoku z konce června informovala až teď daňová správa. Teprve od pondělí dotčeným občanům zasílá e-maily s instrukcemi, jak postupovat dál. Hackeři se sice nedostanou k penězům dotyčných, hrozí ale věrohodné podvody. Hackeři získali třeba celá jména, údaje o rodinných příslušnících nebo také údaje o

    … více »
    Ladislav Hagara | Komentářů: 19
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2448 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Bash otevreni a nacteni souboru

    3.5.2012 19:26 Bass
    Bash otevreni a nacteni souboru
    Přečteno: 521×
    Dobry den,

    rad bych se poradil ohledne reseni nasledujiciho problemu s jednoduchym skriptem v Bashi. Pokousim se pro kazdy soubor z listu souboru nacist v souboru nejaka ridici data,ale nedari se mi jej zprovoznit. Pri spusteni skriptu se vypise chyba prav, pritom soubory jsou me a veskere skripty probihaji v mem adresari.

    #!/bin/bash

    function readCenterGridBox() {

    fname=$1; counter=0;

    for i in $(cat $fname); do result[counter]=$i;

    counter = counter + 1;

    done

    }

    dlist=$(find ~/DOC -type d)

    for dname in $dlist ; do

    position=readCenterGridBox $dname"/cdk.txt"

    echo $position[0];

    echo -e "\n"

    done

    Dekuji za odpoved.


    Řešení dotazu:


    Odpovědi

    3.5.2012 19:46 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru

    Především: jak přesně zní to chybové hlášení?

    Jinak si očividně neděláte těžkou hlavu s mezerami v názvech souborů a adresářů, ale je docela dobře možné, že tam žádné nemáte. A tohle

    counter = counter + 1;
    

    nemůže fungovat. Správně můžete použít

    counter=$[counter + 1]
    

    případně

    : $[counter++]
    

    nebo rovnou

    result[$[counter++]]="$i"
    

    nebo dokonce

    result[${result[*]}]="$i"
    
    3.5.2012 19:47 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Mimochodem, nezní ta chybová hláška čirou náhodou tak, že shell nemůže spustit příkaz counter? :-)
    3.5.2012 19:51 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Ne counter, ale cdk.txt. :) Ta funkce se nikde nevolá.
    3.5.2012 19:47 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Chybu, co vidíš, ti způsobuje řádek position=readCenter..., který zaprvé asi není to, cos chtěl napsat, a zadruhé do proměnné position uloží string "readCenterGridBox" (po mezeru) a následně se snaží spustit ten cdk.txt soubor, který nemá executable práva, proto ta chyba. Nicméně podivností a chyb máš v té ukázce výrazně víc. Hned další budou chybějící dvojité závorky u counter+1 (a naopak přebývající mezery u rovnítka tamtéž). Zbytek asi půjde spustit ale rozhodně nebude dělat to, co chceš (at už je to cokoliv :).
    3.5.2012 20:10 Bass
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    ach ta syntax:-) Chyba je opravdu v tom radku position=readCenter... Dekuji za pomoc, jiz to funguje.
    3.5.2012 20:51 Kit
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Chápu správně, že ten skript má v adresáři ~/DOC vyhledat všechny soubory cdk.txt a z každého vypsat první slovo? Takto se to ale v shellu nedělá. Pokud by ta adresářová struktura byla plochá, stačilo by např. tohle:
    for soubor in ~/DOC/*/cdk.txt; do
      read w1 w2 <"$soubor";
      echo -e "$w1\n";
    done
    4.5.2012 07:33 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Kvuli moznym mezeram v nazvu souboru po expanzi * se presne tohle nedela.
    4.5.2012 08:45 Kit
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Můžu vidět příklad, kdy mé řešení nebude fungovat? Mezery to s přehledem zvládne.
    4.5.2012 09:25 alkoholik | skóre: 40 | blog: Alkoholik
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    No dobre rano.
    ;)
    Mel bych psat az poradne nabootuju..
    4.5.2012 09:23 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Bash otevreni a nacteni souboru
    Nemáte pravdu. Expanze wildcards se provádí až v rámci word splitting, takže v této konstrukci mezery v názvech souborů nevadí.

    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.