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 01:33 | IT novinky

    Celkové tržby společnosti Canonical za rok 2024 byly 292 milionů dolarů (pdf). Za rok 2023 to bylo 251 milionů dolarů.

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

    Byla vydána verze 1.88.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

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

    Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 6.17. Mimo jiné aktualizuje Tor Browser (14.5.4) a opravuje několik chyb.

    Fluttershy, yay! | Komentářů: 0
    včera 21:11 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 13:11 | IT novinky

    Město Lyon posiluje svou digitální suverenitu a postupně nahrazuje software od společnosti Microsoft bezplatnými alternativami, zejména OnlyOffice pro kancelářské aplikace a Linux a PostgreSQL pro systémy a databáze.

    Ladislav Hagara | Komentářů: 5
    včera 11:44 | Zajímavý projekt

    Evropská občanská iniciativa Stop Destroying Videogames se snaží o to, aby vydavatelé, kteří spotřebitelům v Evropské unii prodávají videohry nebo na ně udělují licence, měli povinnost tyto hry ponechat ve funkčním (hratelném) stavu i po ukončení podpory ze své strany. Podpořit podpisem tuto iniciativu můžete v Systému pro online sběr podpisů.

    trekker.dk | Komentářů: 4
    včera 11:22 | Komunita

    Mozilla oficiálně ukončila svůj již několik let mrtvý projekt DeepSpeech pro převod řeči na text.

    Ladislav Hagara | Komentářů: 2
    včera 05:22 | Komunita

    Krátce po oficiálním oznámení forku X.Org Xserveru s názvem XLibre Xserver byl ve Fedoře předložen návrh, aby byl X.Org Xserver nahrazen tímto XLibre Xserverem. Po krátké ale intenzivní diskusi byl návrh stažen.

    Ladislav Hagara | Komentářů: 23
    včera 01:33 | Komunita

    62 projektů získalo finanční podporu od NLnet Foundation (Wikipedie).

    Ladislav Hagara | Komentářů: 1
    včera 00:33 | Nová verze Ladislav Hagara | Komentářů: 1
    Jaký je váš oblíbený skriptovací jazyk?
     (58%)
     (29%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 314 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Rozdíl mezi shel a bash

    26.10.2017 14:58 Martina
    Rozdíl mezi shel a bash
    Přečteno: 864×
    Ahoj, může mi někdo poradit jaký je rozdíl mezi programováním v shelu a v bashi? Hledám nějake informace v češtině pro začátečníky ale nic moc jsem nenašla. Děkuji M.

    Řešení dotazu:


    Odpovědi

    Řešení 1× (Vladimír Čunát)
    26.10.2017 15:09 NN
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Shell = prikazovy interpret, konzole. Bash - Bourne Again Shell, je jeden z mnoha "shellu", jako napriklad sh,zsh,ksh..
    26.10.2017 21:27 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash

    konzole != shell

    Josef Kufner avatar 27.10.2017 23:13 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Jen pro doplnění: Shelly (včetně Bashe) jsou orientovány hlavně na interaktivní použití z příkazové řádky. Na programování se moc nehodí. Něco menšího se dá, ale cokoliv většího je utrpení.

    Pokud s programováním začínáš, sáhni radši po Pythonu a k Bashi se vrať potom. Pokud máš dobrý důvod i přes to se pustit do bashe, tak viz https://www.root.cz/clanky/programovani-v-bash-shellu/.
    Hello world ! Segmentation fault (core dumped)
    k3dAR avatar 28.10.2017 02:55 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    pokud jde o "programovani" ve stylu zautomatizovani, nebo vyuziti GNU a jinych dostupnych nastroju, je BASH naprosto v pohode i pro vetsi "projekty" ;)
    porad nemam telo, ale uz mam hlavu... nobody
    Řešení 1× (Vladimír Čunát)
    26.10.2017 15:09 štefan
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Ahoj, shell je obecný název pro program umožňující zadávat příkazy interaktivně nebo v dávkách (souborrech), kdežto bash je konkrétní implementace tohoto principu.

    Rozdíli můžou být:
    • žádné
    • obrovské
    • něco mezi tím
    U mnoha linuxů je shell synonymem (zkratkou) pro právě bash.

    Jako orientační základ dobře poslouží tento článek na rootu: https://www.root.cz/clanky/programovani-v-bash-shellu/

    Jinak manuálové stránky bash (angličtina): https://www.gnu.org/software/bash/manual/bashref.html

    Při nainstalovaném linuxu je k dispozici příkaz
    man bash
    , který v závislosti na instalaci a distribuci by případně mohl býti i v češtině.
    26.10.2017 21:26 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash

    Bash je jednou z mnoha implementací shellu definovaného standardem, která ale přidává obrovskou spoustu funkcí navíc. Rozdíl je tedy ten, že v Bashi se dá spousta věcí napsat úsporněji a jednodušeji než ve standardním shellu. Pravděpodobně nejblíž implementaci původního standardu je Dash.

    Ještě před několika lety se mělo všeobecně za to, že skripty v distribucích by se měly omezovat pouze na standardizovaný shell bez rozšíření typu Bash, aby příznivci a odpůrci Bashe mohli mírumilovně koexistovat. Poslední dobou se ale takové orthodoxní postoje příliš nevidí a spousta skriptů přímo závisí na Bashi.

    Bash má například pole, která výrazně usnadňují některé situace, a k tomu obrovskou spoustu expanzí proměnných, které standardní shell nepodporuje:

    soubory=('první' 'druhý' 'třetí')              
    echo "${soubory[@]/%/.přípona}"
    

    Dash něco podobného dokáže (zdánlivě) taky, ale problém nastane, pokud například některé jméno souboru bude obsahovat mezeru. Bez mezer (a s totožným výstupem) to půjde třeba takto.

    soubory='první druhý třetí'
    echo $(for soubor in $soubory; do echo "${soubor}.přípona"; done;)
    

    Další zajímavost Bashe je (kromě polí) taky aritmetika a datové typy. Proměnné deklarované jako integer podporují jednoduché přiřazení a použití ve výrazech. Bohužel Bash podporuje jen bezznaménková celá čísla, ale něco se v něm tu a tam spočítat dá. To následující je funkce, která vyhodnocuje polynomy:

    # Příklad: 4x^2 + 2x + 3 [x = 7]: polynomial 4 2 3 7
    polynomial() {
      local -ar args=("$@")
      local -air coefficients=("${args[@]:0:${#args[@]} - 1}")
      local -ir variable="${args[-1]}"
      local -i value=0
      local -i power=1
      for ((index = 1; index <= ${#coefficients[@]}; ++index)); do
        value+='power * coefficients[-index]'
        ((power *= variable))
      done
      echo "$value"
    }
    

    A tady je 53 + 2×52 + 3×5 + 4:

    $ polynomial 1 2 3 4 5
    194
    

    Tohle^^^ by Dash dokázal jistě taky, v potu tváře a za použití expr, ale asi bych to v něm nechtěl kódit. Bash je tedy trochu univerzálnější než standardní shell; dokáže zastat několik málo běžných funkcí, kvůli kterým by bylo jinak potřebné sáhnout k perlu, sedu nebo awk.

    27.10.2017 14:35 jiwopene@gmail.com
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Mám pár poznámek:

    Shell není až tak často používaný jako programovací jazyk nebo se udělá nějaký "program" (napíše příkaz), který je použit jednou, neukládá se a jde nám pouze o výsledek (vyhledání souboru, ...).

    Jestli jste začátečník, doporučuji si pročíst Linux v Příkazech (doufám, že to smím napsat. ;-) ).

    Program v bashi může být docela krátký, ale přitom složitý. Velkou výhodou jsou roury:
    nmap -n -iR 100 -T5 -p 80 -oG -|grep open|tr -d 'Host:( '|cut -d ')' -f 1
    Data z nmap se neobjeví na obrazovce, ale půjdou na vstup programu grep, pak tr a výstupem bude výstup cut.

    Téměř pokaždé, když někdo píše shell, myslí bash či něco kompatibilního.
    27.10.2017 16:29 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Sice binárních programu v /usr/bin je více, ale přesto ze systému mi v něm sídle skoro skriptů pro bash.
    27.10.2017 22:10 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Nejen roury, ale i víceprocesové zpracování dat se v shellu dělá velmi snadno a jede to i svižně. Pokud se však někdo pokouší v shellu programovat podobně jako třeba v C, obvykle spláče nad výkonem. Pole by se v shellu vůbec nemělo používat, jsou s ním jen patálie.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    27.10.2017 16:49 Kit
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Velmi často se stává, že někdo do skriptu napíše příkazy pro Bash, do záhlaví uvede #!/bin/sh a pak se diví, že mu to nefunguje.
    27.10.2017 17:53 jiwopene | skóre: 31 | blog: Od každého trochu…
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Nebo má symlink /bin/sh na /bin/bash a pošle to někomu, kdo v /bin/sh má něco jiného než bash.
    .sig virus 3.2_cz: Prosím, okopírujte tento text do vaší patičky.
    27.10.2017 18:56 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    To je ešte relatívne v poriadku. Horšie je keď niekto do tvojho skriptu pre posixový shell "dorobí" kusy kódu v bash-i a keď sa vrátiš z dovolenky tak ideš na koberček ty namiesto neho. Samozrejme že o tej zmene nevieš, len to proste prestalo fungovať.
    27.10.2017 21:59 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    To je přece snadno dohledatelné v repozitáři, kdo kdy kterou změnu udělal.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.10.2017 08:49 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Už vidím nikoho čo používa repozitár na lokálne záležitosti čo automatizujú drobnú rutinu. Problém je v tom, že vedúceho obvykle nezaujíma kto to bol. Vedúceho obvykle zaujíma že to nefungovalo, on sa rozčuľoval, musel nahučať na autora nech to dá do poriadku a začalo to fungovať. Dôvod, prečo to prestalo fungovať žiadneho vedúceho nezaujíma.
    28.10.2017 12:18 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    U nás je to standard. Na produkci nesmí být nic, co by současně nebylo v repozitáři. Když něco nefunguje, tak revert je první akcí, která se provádí.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    27.10.2017 22:02 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Když uděláš symlink /bin/sh na /bin/bash, mělo by se to chovat jako posixový shell. Bash totiž kontroluje, pod jakým jménem byl spuštěn a podle toho mění své chování.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    28.10.2017 08:58 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Rozdíl mezi shel a bash
    Nie vždy to sedí tak ako by malo. Ale to je nad rámec otázky.

    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.