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

    Intel vydal 30 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20251111 mikrokódů pro své procesory.

    Ladislav Hagara | Komentářů: 0
    dnes 15:33 | Nová verze

    Byla vydána říjnová aktualizace aneb nová verze 1.106 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.106 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Canonical pro své zákazníky, předplatitele Ubuntu Pro, prodloužil podporu Ubuntu LTS z 12 let na 15 let (Legacy add-on). Týká se verzí od 14.04 (Trusty Tahr).

    Ladislav Hagara | Komentářů: 2
    dnes 05:11 | Nová verze

    Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 5.0.0. Nově je oficiálně podporován Linux ARM64/AArch64. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.

    Ladislav Hagara | Komentářů: 6
    dnes 00:33 | Nová verze

    Byla vydána verze 10 dnes již multiplatformního open source frameworku .NET (Wikipedie). Přehled novinek v příspěvku na blogu Microsoftu. Další informace v poznámkách k vydání na GitHubu nebo v přednáškách na právě probíhající konferenci .NET Conf 2025.

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

    Rodina hardwaru služby Steam se začátkem roku 2026 rozroste. Steam Deck doplní nový Steam Controller, herní PC Steam Machine se SteamOS s KDE Plasmou a bezdrátový VR headset s vlastními ovladači Steam Frame.

    Ladislav Hagara | Komentářů: 1
    včera 16:22 | IT novinky

    Amazon Web Services (AWS) oznámil (en) výstavbu Fastnetu – strategického transatlantického optického kabelu, který propojí americký stát Maryland s irským hrabstvím Cork a zajistí rychlý a spolehlivý přenos cloudových služeb a AI přes Atlantik. Fastnet je odpovědí na rostoucí poptávku po rychlém a spolehlivém přenosu dat mezi kontinenty. Systém byl navržen s ohledem na rostoucí provoz související s rozvojem umělé inteligence a

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 15:11 | IT novinky

    Evropská komise zkoumá možnosti, jak přinutit členské státy Evropské unie, aby ze svých telekomunikačních sítí postupně vyloučily čínské dodavatele Huawei a ZTE. Místopředsedkyně EK Henna Virkkunenová chce změnit doporučení nepoužívat rizikové dodavatele při budování mobilních sítí z roku 2020 v právně závazný požadavek.

    Ladislav Hagara | Komentářů: 13
    včera 12:44 | Bezpečnostní upozornění

    sudo-rs, tj. sudo a su přepsané do programovacího jazyka Rust, již obsaženo v Ubuntu 25.10, bylo vydáno ve verzi 0.2.10. Opraveny jsou 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | IT novinky Ladislav Hagara | Komentářů: 6
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (47%)
     (18%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (16%)
    Celkem 348 hlasů
     Komentářů: 16, poslední včera 18:21
    Rozcestník

    Dotaz: Seznam/pole (nebo tak něco) v sh

    Jardík avatar 1.4.2014 16:10 Jardík | skóre: 40 | blog: jarda_bloguje
    Seznam/pole (nebo tak něco) v sh
    Přečteno: 222×
    Potřeboval bych vytvořit něco jako seznam či pole v sh (bude to busyboxí ash nebo dash, bash ne).

    Např. když mám skript, který vypisuje argumenty
    for i in $*; do
      echo "$i"
    done
    
    A zavolám ho:
    $ myscript meow meow2 "meow with space"
    meow
    meow2
    meow
    with
    space
    
    Stejně je to když použiju $@ místo $*. Když to ale dám do uvozovek jako "$*" a "$@", tak dostávám:
    # for i in "$*"; do echo "$i"; done
    meow meow2 meow with space
    
    # for i in "$@"; do echo "$i"; done
    meow
    meow2
    meow with space
    
    Poslední příklad mi tedy dává, co potřebuju, v případě argumentů předaných skriptu. Co teď ale potřebuju je něco podobného s proměnnou místo argumentů. Následující nefunguje
    myvar="meow meow2 \"meow with space\""
    
    # for i in ${myvar}; do echo "$i"; done
    meow
    meow2
    "meow
    with
    space"
    
    # for i in "${myvar}"; do echo "$i"; done
    meow meow2 "meow with space"
    
    Co potřebuju je výstup
    meow
    meow2
    meow with space
    
    Věřím v jednoho Boha.

    Odpovědi

    1.4.2014 16:46 potato
    Rozbalit Rozbalit vše Re: Seznam/pole (nebo tak něco) v sh
    Posixový shell nemá pole (kromě argumentů) ani nepřímé reference. Viděl bych tyto možnosti:

    (a) Využít toho, že je k disposici jen jedno pole, ale není globální a formulovat celý kód tak, že se pole předávají dokola jako argumenty funkcí.

    (b) Narvat to do jedné proměnné, použít delimitery a pokaždé dělat explicitní split-unescape-escape-join cyklus.

    (c) Zatnout zuby a použít eval.

    (d) Ukládat data jinak (do souborů, etc.).

    (e) Nepsat RDBMS v dashi...
    Jardík avatar 1.4.2014 16:48 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Seznam/pole (nebo tak něco) v sh
    Tek jsem se dopracoval zatím k něčemu takému:
    # embeded newline
    myvar="meow
    meow2
    meow with space"
    
    SAVEIFS="${IFS}"
    
    # split on newline
    IFS=$'\n'
    a=1
    
    for i in ${myvar}; do
      echo "arg${a}: ${i}"
      a=$((a+1))
    done
    
    IFS="${SAVEIFS}"
    
    Tedy mám "jakési" pole, kde jsou položky rozděleni znakem nového řádku. Problém je, že znak nového řádku se může vyskytovat třeba ve jménu souboru (asi zřídka, ale může), takže by to chtělo jiný oddělovač. Bohužel nula (tj. jediný znak, který není v cestě souboru) jaksi v sh nefunguje :-(
    Věřím v jednoho Boha.
    Jardík avatar 1.4.2014 19:36 Jardík | skóre: 40 | blog: jarda_bloguje
    Rozbalit Rozbalit vše Re: Seznam/pole (nebo tak něco) v sh
    Hmm, tak na webu ubuntu tvrdí, že $'\n' je bashismus. V busyboxím ash mi to funguje, ale chtěl bych to mít portabilní (česky?). Zkusil jsem tedy jejich IFS="$(printf '\n')", jenže to mi novou řádku ukradne a do proměnné neuloží, ačkoliv samotný printf '\n' ji produkuje.
    Věřím v jednoho Boha.
    1.4.2014 20:33 potato
    Rozbalit Rozbalit vše Re: Seznam/pole (nebo tak něco) v sh
    Protože `` a $() pojídají koncové prázdné řádky. Nejspíš je to POSIX a tradice, nechce se mi to teď dohledávat. Získat z command substitution pouze konec řádku tedy nejde, musíš za něj v printf něco přidat, aby nebyl odstraněn, pak to zase zlikvidovat.

    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.