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 17:22 | Komunita

    Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.

    Ladislav Hagara | Komentářů: 0
    dnes 16:55 | Zajímavý software

    Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.

    Ladislav Hagara | Komentářů: 0
    dnes 14:00 | Zajímavý projekt

    Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.

    Pinhead | Komentářů: 3
    dnes 02:22 | Zajímavý software

    Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.

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

    Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Bezpečnostní upozornění

    Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.

    Ladislav Hagara | Komentářů: 1
    včera 14:00 | Komunita

    Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.

    Ladislav Hagara | Komentářů: 7
    včera 12:55 | IT novinky

    Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | IT novinky

    Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a

    … více »
    Ladislav Hagara | Komentářů: 48
    včera 04:11 | Nová verze

    Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 4.0.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (25%)
    Celkem 1606 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: BASH - nahrazení kódu

    31.7.2012 12:33 MM
    BASH - nahrazení kódu
    Přečteno: 276×
    Ahoj, mám takovej kód
    for ARRAY_NAME in "${DIRS[@]}"
    do
    ...
    done
    a potřeboval bych nahradit ${DIRS[@]} něčím jiným co by dokázalo načítat data ne z pole ale data ze souboru.. Děkuji

    Odpovědi

    31.7.2012 12:41 chrono
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Cieľom je načítať riadky zo súboru do poľa, alebo postupne každý riadok do nejakej premennej, či niečo úplne iné?
    31.7.2012 12:45 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    No potřebuji vypsat vždy jeden řádek přímo, bez ukládání do array
    for ARRAY_NAME in "${DIRS[@]}"
    do
     echo "$ARRAY_NAME"
    done
    31.7.2012 12:54 chrono
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    while read LINE
    do
            echo $LINE
    done < "./subor"
    
    prípadne
    cat "./subor" | while read LINE
    do
            echo $LINE
    done
    31.7.2012 12:53 NN
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    for LINE in $(cat file); do ...
    ?
    31.7.2012 13:17 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Díky moc, akorá ještě se mu něco nelíbí, ale netuším absolutně proč.. neví někdo? Dík :(

    TEMP_FILE="/tmp/temp.tmp"
    ROW_COUNT=$(wc -l $TEMP_FILE)
    
    i=0
    for ROW_NAME in "$(cat $TEMP_FILE)"
    do
     BAR=$(( 100*(++i)/$ROW_COUNT ))
     echo "$ROW_NAME"
     echo "$BAR"
    done
    line 53: 100*(++i)/43 /tmp/temp.tmp : division by 0 (error token is "/temp.tmp ")
    31.7.2012 13:25 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    line 53 je v tomto případě tento řádek BAR=$(( 100*(++i)/$ROW_COUNT ))
    31.7.2012 13:29 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Problém vznikne na řádku s ROW_COUNT=$(wc -l $TEMP_FILE). Pusťte si tenhle příkaz (wc -l $TEMP_FILE) a uvidíte proč. Řešením je použít přesměrování
    wc -l < $TEMP_FILE
    nebo oříznout výstup cutem (například).
    I am always ready to learn although I do not always like to be taught. (W. Churchill)
    31.7.2012 13:28 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Pretože ROW_COUNT neobsahuje len počet riadkov, ale aj meno toho čo je v $TEMP_FILE.

    Skús:

    ROW_COUNT=$(wc -l < $TEMP_FILE)
    31.7.2012 13:50 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Super díky moc za pomoc ;-)

    PS: ještě jeden takový dotaz ohledně funkcí
    function foo {
     $NAME="/tmp/foo/foo/"
     $1 #tady se ma spustit: mkdir /tmp/foo/foo/
    }
    
    foo "mkdir $NAME"
    jak tady v tom foo "mkdir $NAME" zapsat tu proměnou aby se doplnila až v te funkci foo ? Zkoušel jsem to až všelijak ale fakt nevím. Díky
    foo "mkdir $NAME"
    foo "mkdir ""$NAME""
    foo "mkdir "\"$NAME"\"
    foo "mkdir "`$NAME`"
    atd..
    31.7.2012 13:57 chrono
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Čo presne chceš vlastne urobiť? Tá funkcia foo má mať prvý parameter program, ktorý sa má spustiť a ďalší parameter / ďalšie parametre sa majú použiť ako argumenty toho programu?
    31.7.2012 14:07 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Více méně ano, ta funkce foo plní ty proměnné $NAME a musí ji přiřadit do toho příkazu v tomto případě do mkdir. Čili jak píšete potřebuji funkci foo předat příkaz který má spustit ale argument si musí funkce foo dosadit sama. Díky
    31.7.2012 14:12 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Té funkci foo předávám pouze ten příkaz mkdir ale taky budu předávat daleko složitější příkazy, tak potřebuji vřdy doplnit tu promměnou třeba tuto
    [ ! -d $NAME ] && mkdir $NAME
    31.7.2012 14:14 chrono
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Nebude jednoduchšie tú funkciu použiť len na načítanie tých údajov a tie príkazy potom používať priamo?
    31.7.2012 14:12 chrono
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Ja osobne by som to, veľmi pravdepodobne urobil úplne inak, každopádne použiť sa dá napr. eval (v tej funkcii sa namiesto $1 použije $(eval $1)a samotné volanie potom bude foo "mkdir \$NAME"
    31.7.2012 14:24 MM
    Rozbalit Rozbalit vše Re: BASH - nahrazení kódu
    Já bych to taky udělal jinak, předal bych třeba jen nějakou číselnou hodnotu třeba 1 a pak bych použil if switch který by provedl přesně to co potřebuji, bohužel ta funkce mimo jiné obsahuje nezmíněný kód který mi nedovolí daný switch použít. :(
    cat <<EOF
    XXX
    $BAR
    Vytvářím: $NAME
    XXX
    EOF

    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.