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 14:33 | Komunita

    Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.

    Ladislav Hagara | Komentářů: 1
    dnes 14:11 | IT novinky

    Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 0
    dnes 13:44 | Humor

    Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,

    … více »
    Pendrekama do nich❗ | Komentářů: 4
    dnes 13:22 | IT novinky

    Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.

    Pendrekama do nich❗ | Komentářů: 2
    dnes 01:33 | IT novinky

    Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.

    Ladislav Hagara | Komentářů: 3
    včera 23:22 | Zajímavý projekt

    Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »

    Ladislav Hagara | Komentářů: 3
    včera 18:55 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.

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

    Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.

    vencour | Komentářů: 0
    27.10. 18:11 | Nová verze

    Byl vydán Mozilla Firefox 159.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 159 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 1
    27.10. 14:11 | IT novinky

    Nasazení softwaru, který nyní používá ve svých autech pro čínský trh, zvažuje automobilový koncern Volkswagen také v Evropě, kde by se mohl používat v budoucích vozech značek Volkswagen, Škoda a Cupra. Základem pro budoucí evropské modely by se mohla stát takzvaná China Electronic Architecture, elektronická architektura vyvinutá pro čínské modely ve spolupráci s tamní automobilkou Xpeng.

    Ladislav Hagara | Komentářů: 46
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2940 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    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: 524×
    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ákno • Nahoru

    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.