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

    Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.

    Ladislav Hagara | Komentářů: 1
    dnes 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 1
    dnes 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 24
    včera 23:22 | Pozvánky

    Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou

    … více »
    bkralik | Komentářů: 0
    včera 22:33 | IT novinky

    Dle plánu dnes končí služba Skype. Uživatelé mohou pokračovat v Microsoft Teams.

    Ladislav Hagara | Komentářů: 1
    včera 21:44 | IT novinky

    Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.

    Ladislav Hagara | Komentářů: 2
    včera 12:33 | Zajímavý projekt

    Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | Pozvánky

    Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.

    Ladislav Hagara | Komentářů: 0
    4.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    4.5. 14:22 | IT novinky

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 35
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (3%)
     (1%)
     (1%)
     (3%)
    Celkem 538 hlasů
     Komentářů: 22, poslední včera 10:06
    Rozcestník

    Dotaz: Nefunguje for loop v bourne shell

    27.5.2016 20:22 majales | skóre: 29 | blog: Majales
    Nefunguje for loop v bourne shell
    Přečteno: 381×
    Zdravím, Mám problém s jedním skriptem kterým klonuju VM na ESXi. Nefunguje tam správně for smyčka, pokud má stroj více než jeden disk.
    VM_VMDK_DESCRS=$(ls "$OLDVMSTORE/$OLDVM" | grep ".vmdk" | grep -v "\-flat.vmdk")
    for VMDK in "${VM_VMDK_DESCRS}"
    do
      echo "Cloning VMDK : $VMDK"
      NEWVMDK=$(echo ${VMDK##*/} | sed "s/$OLDVM/$NEWVM/")
      vmkfstools -i "$OLDVMSTORE/$OLDVM/$VMDK" "$NEWVMSTORE/$NEWVM/$NEWVMDK" -d thin
      echo
    
    skript selže protože v té smyčce se mu objeví oba ty nalezené disky
    ls /vmfs/volumes/datastore1/DSMON01 |grep ".vmdk" | gr
    ep -v "\-flat.vmdk" | hexdump -C
    00000000  44 53 4d 4f 4e 30 31 2e  76 6d 64 6b 0a 44 53 4d  |DSMON01.vmdk.DSM|
    00000010  4f 4e 30 31 5f 31 2e 76  6d 64 6b 0a              |ON01_1.vmdk.|
    
    Přičemž separátor je tady 0a což by měl být linefeed.

    Nevíte jak upravit ten for aby to začalo chodit? Zkoušel jsem přidat IFS=$'\n' ale nepomohlo to. Díky za každou radu.

    Řešení dotazu:


    Odpovědi

    27.5.2016 21:46 NN
    Rozbalit Rozbalit vše Re: Nefunguje for loop v bourne shell
    Tipnu, ze problem bude tady:
    sed "s/$OLDVM/$NEWVM/"
    Protoze, nahradis dvakrat to same..
    28.5.2016 00:47 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: Nefunguje for loop v bourne shell
    Řeším pouze smyčku:

    for i in "abc def"; do echo $i; done proběhne jednou a vypíše řetězec: abc def

    for i in abc def; do echo $i; done proběhne dvakrát a vypíše řetězce: abc a def

    Když tak ale koukám na to řetězení ls a 2x grep. Tak spíše něco jako... for vdmk in "${OLDVMSTORE}/${OLDVM}"/*.vdmk*; do ...; done. Ve smyčce můžete vyřídit případný -flat.vdmk (pokud substring, pak continue).

    A ještě poznámka: ls | grep .vdmk není ls *.vdmk* (což jste asi chtěl), ale ls *?vdmk* (což je spíše omyl?).
    Řešení 1× (jose17)
    28.5.2016 08:48 majales | skóre: 29 | blog: Majales
    Rozbalit Rozbalit vše Re: Nefunguje for loop v bourne shell
    Nakonec jsem to upravil takto:
    VM_VMDK_DESCRS=$(ls "$OLDVMSTORE/$OLDVM" | grep ".vmdk" | grep -v "\-flat.vmdk")
    for VMDK in ${VM_VMDK_DESCRS//\\n/ }
    do
      echo "Cloning VMDK : $VMDK"
      #echo "MEZERA"
      NEWVMDK=$(echo ${VMDK##*/} | sed "s/$OLDVM/$NEWVM/")
      vmkfstools -i "$OLDVMSTORE/$OLDVM/$VMDK" "$NEWVMSTORE/$NEWVM/$NEWVMDK" -d thin
      echo
    done
    Funguje to. Díky všem.
    30.5.2016 20:33 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
    Rozbalit Rozbalit vše Re: Nefunguje for loop v bourne shell
    Možná jsem to nevysvětlil dost jasně, ale tohle nezačalo "fungovat", protože je tam ta náhrada vzorce (${VM_VMDK_DESCRS//\\n/ }), která na to nemá vliv, ale protože kolem ${VM_VMDK_DESCRS} (s náhradou nebo bez) už nejsou uvozovky.
    k3dAR avatar 30.5.2016 21:35 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Nefunguje for loop v bourne shell
    ja ti pomuzu :)
    # tahle smycka pojede 3x protoze jde o 3 nezavisle vstupy
    for neco in jedna dva tri; do
    
    # tahle smycka pojede 1x protoze jde o 1 souvislej vstup
    for neco in "jedna dva tri"; do
    
    a je jedno jestli jde o vypsane vstupy primo ve smycce, nebo jde o promenou ktera je obsahuje
    porad nemam telo, ale uz mam hlavu... nobody

    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.