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:44 | Nová verze Ladislav Hagara | Komentářů: 2
    dnes 05:22 | Bezpečnostní upozornění

    Byly publikovány informace o kritické zranitelnosti v knihovně pro Rust async-tar a jejích forcích tokio-tar, krata-tokio-tar a astral-tokio-tar. Jedná se o zranitelnost CVE-2025-62518 s CVSS 8.1. Nálezci je pojmenovali TARmageddon.

    Ladislav Hagara | Komentářů: 0
    včera 23:15 | Nová verze

    AlmaLinux přinese s verzí 10.1 podporu btrfs. XFS bude stále jako výchozí filesystém, ale instalátor nabídne i btrfs. Více informací naleznete v oficiálním oznámení.

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

    Společnost OpenAI představila svůj vlastní webový prohlížeč ChatGPT Atlas. Zatím je k dispozici pouze na macOS.

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

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.5 (Mastodon). Přehled novinek i s videi a se snímky obrazovek v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 2
    včera 13:55 | IT novinky

    Rodina jednodeskových počítačů Orange Pi se rozrostla (𝕏) o Orange Pi 6 Plus.

    Ladislav Hagara | Komentářů: 4
    včera 13:33 | IT novinky

    Na Humble Bundle běží akce Humble Tech Book Bundle: All Things Raspberry Pi by Raspberry Pi Press. Se slevou lze koupit elektronické knihy od nakladatelství Raspberry Pi Press a podpořit Raspberry Pi Press, Raspberry Pi Foundation North America nebo Humble.

    Ladislav Hagara | Komentářů: 0
    včera 11:44 | Humor

    Přidaný režim autonomního řízení vozidel Tesla Mad Max je dostupný pro vybrané zákazníky v programu EAP (Early Access Program). Nový režim je na silnici agresivnější, častěji mění pruhy a ne vždy dodržuje rychlostní limity. Agentura JPP spekuluje, že v Česku by se mohl nový režim namísto Mad Max jmenovat Mad Turek...

    karkar | Komentářů: 21
    včera 04:00 | Nová verze

    Byla vydána nová verze 9.18 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Nově také pro NanoPi R3S, R3S LTS, R76S a M5. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 00:22 | Nová verze

    bat, tj. vylepšený cat se zvýrazňováním syntaxe a integrací s gitem, byl vydán ve verzi 0.26.0.

    Ladislav Hagara | Komentářů: 1
    Jaké řešení používáte k vývoji / práci?
     (37%)
     (47%)
     (20%)
     (20%)
     (23%)
     (18%)
     (21%)
     (18%)
     (18%)
    Celkem 253 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: bash a spojeni vstupu s promnenou - neznalost syntaxe

    29.10.2009 11:48 Jcas | skóre: 19 | blog: linux v rukou ...
    bash a spojeni vstupu s promnenou - neznalost syntaxe
    Přečteno: 368×
    Dobrý den poprosím o radu, protože se mi nedaří najít řešení.

    První části scriptu definuji proměnné a počítám s tím, že se tyto propěné budou v praxi editovat. Tzn. že občas nějaká další přibude, nebo se nějaká odstraní. A z toho důvodu se snažím script uděla tak, aby tyto klíčová slova se nevyskytovali dále ve scriptu, abych nemusel přidávat proměnou na 10 míst někde ve scriptu.

    příklad
    1p=(1h 2h 3h 4h)
    1h="xterm thunar xclock"
    2h="xterm mousepad"
    3h="xterm gedit"
    atd.
    
    A V druhé části potřebuji tyto proměné vytáhnout. Základ mám. Script mi zkontroluje jednu z hodnot v poli a nyní potřebuji jen, aby se provedli příkazy, které nastartují to co mají.

    Mám uživatelský vstup, který je zapsán v proměné x a který se rovná jedné hodnotě v poli .
    read x
    # x == 1h, nebo 2h, nebo 3h atd.
    A nyní potřebuji, aby se nastartovaly příslušné programy a právě kvůly následné editaci se chci vyhnout, abych v této části použil něco jako
    if [ $x == $1h ] atd.
    Zkošel jsem eval, nebo něco jako ${$x} ale nic mi nefunguje.

    Možná jdu na to úplně blbě a proto děkuji za každou radu.

    Odpovědi

    29.10.2009 11:55 l4m4
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Proměnné, kromě speciálních, začínají písmenem nebo podtržítkem. Takže syntakticky to je nesmysl celé od začátku.
    29.10.2009 12:16 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Přiznám se, že jsem vůbec nepochopil, o co ti jde.
    29.10.2009 12:30 jirka
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    viz prispevek od l4m4 - promenne nemohou zacinat cislici.

    Pokud jsem pochopil Vas dotaz spravne, tak potrebujete z

    h1="hodnota 1"
    h2="hodnota 2"
    h3="hodnota 3"
    
    read x
    ...
    
    tak po zadani napr. "h2" chcete do pomocne promenne ulozit hodnotu promenne $h2.
    Mozna to jde jednoduseji, ale me tak narychlo napadlo napr. pomoci eval:
    eval y=\$$x
    a pak uz si s promennou $y delejte co chcete.

    29.10.2009 13:05 Jirka P
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Přesně tak, eval je na podobné případy klasika.

    Další možnost v bashi je použít nepřímé reference, takhle:
    
    read x
    echo ${!x}
    
    29.10.2009 15:52 Jcas | skóre: 19 | blog: linux v rukou ...
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Evidentně se ještě ptám blbě. (to co jsem napsal byl příklad. Moje proměné nezačínají číslem.)
    p1=(h1 h2 h3)
    h1="xterm"
    
    atd
    read x
    Prověřím, že x obsaženo v poli pomocí for i in ....

    Nyní mám
    [ "$x" = "$i" ]
    A problém
    $x  #h1 neni prikaz a hlavne nevim jestli se 
    $x == h1 nebo se == h2 nebo ...
    
    eval y='$'$x #opet h1 neni prikaz
    Vím že v $x je jedna z hodnot, které jsou v poli, ale nejsu schopen spustit xterm.
    29.10.2009 16:22 l4m4
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Jestli rozumím správě, problém je nakonec
    x=xterm
    $x
    
    Ale to funguje.

    Druhý způsob, tak to mohu chápat, je, že nedokážeš získat prvek pole:
    p=(a b c)
    i=1
    echo ${p1[$i]}
    
    ale nevidím, že bys iteroval přes ta pole numericky.

    Třetí možnost je získání hodnoty dvojité reference:
    x=xterm
    y=x
    echo ${!y}
    
    ale to už tu bylo zodpovězeno.

    Pak už fakt nevím, na co se ptáš.
    29.10.2009 18:14 Jcas | skóre: 19 | blog: linux v rukou ...
    Rozbalit Rozbalit vše Re: bash a spojeni vstupu s promnenou - neznalost syntaxe
    Děkuji mockrát Ta dvojitá reference bylo přesně to co jsem potřeboval.

    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.