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í
×
    včera 23:55 | IT novinky

    Do 20. října do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | říjen 2025 (YouTube) doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.

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

    O zavedení nástroje na monitorování online konverzací v rámci boje proti dětské pornografii (tzv. Chat Control) měli ministři vnitra rozhodovat na úterním společném zasedání v Lucemburku. Plán dánského předsednictví Rady EU ale před pár dny ztroskotal, když se ukázalo, že Chat Control nemá dostatečnou podporu.

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

    Již toto úterý proběhne každoměsíční akce Virtuální Bastlírna, kterou pořádá projekt MacGyver. Jde o virtuální posezení u piva a volné klábosení o různých zajímavostech ze světa elektroniky, softwaru i techniky. V posledním měsíci se stalo nemálo zajímavostí týkajících se spousty bastlířů - kupříkladu Arduino nyní patří pod Qualcomm, Raspberry Pi vydalo nový počítač, ale potichu i miniaturní compute module. Pro AMS od Bambu Lab se

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

    Google zpřístupňuje své AI nástroje českým univerzitním studentům prostřednictvím předplatného Google AI Pro na 12 měsíců bez poplatku. Platnost nabídky vyprší 9. prosince 2025.

    Ladislav Hagara | Komentářů: 0
    včera 10:55 | Zajímavý projekt

    MicroPythonOS je operační systém napsaný v MicroPythonu určený především pro mikrokontroléry jako ESP32. Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Nová verze

    Byl vydán LineageOS 23 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 23 je založený na Androidu 16.

    Ladislav Hagara | Komentářů: 0
    11.10. 15:33 | Komunita

    Na YouTube byly zveřejněny videozáznamy přednášek z hackerské konference DEF CON 33, jež proběhla 7. až 10. srpna v Las Vegas.

    Ladislav Hagara | Komentářů: 0
    11.10. 05:33 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.3. Představení novinek také na YouTube. Bun je naprogramován v programovacím jazyce Zig.

    Ladislav Hagara | Komentářů: 3
    10.10. 14:22 | IT novinky

    V Lucemburku byly oznámeny výsledky posledního kola výzev na evropské továrny pro umělou inteligenci neboli AI Factories. Mezi úspěšné žadatele patří i Česká republika, potažmo konsorcium šesti partnerů vedené VŠB – Technickou univerzitou Ostrava. V rámci Czech AI Factory (CZAI), jak se česká AI továrna jmenuje, bude pořízen velmi výkonný superpočítač pro AI výpočty a vznikne balíček služeb poskytovaný odborníky konsorcia. Obojí bude sloužit malým a středním podnikům, průmyslu i institucím veřejného a výzkumného sektoru.

    Ladislav Hagara | Komentářů: 19
    10.10. 01:22 | Nová verze

    Byla vydána (𝕏) zářijová aktualizace aneb nová verze 1.105 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.105 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (46%)
     (17%)
     (18%)
     (22%)
     (16%)
     (18%)
     (16%)
     (16%)
    Celkem 212 hlasů
     Komentářů: 13, poslední 8.10. 07:41
    Rozcestník

    Dotaz: Oprava scriptu

    11.3.2013 12:52 TT
    Oprava scriptu
    Přečteno: 573×
    Ahoj, proč mi podmínka pořád vyhodnocuje exit, i když stejný program není spuštěn? Je to kontrolováno přímo ze scriptu který se kontroluje. Díky
    ps aux | grep -v "grep" | grep -q "/home/foo.sh"
    if [ $? -eq 0 ]; then
       exit
    else
       # echo "pokračuji.."
    fi

    Odpovědi

    11.3.2013 13:00 potato
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Dotaz nedává moc smysl. exit se spustí, když je návratový kód roury nula. Ten je nula, pokud byl poslední příkaz v rouře úspěšný (pokud nenastavils v bashi pipefail). grep je úspěšný, pokud něco našel. Proč něco našel, nelze z dodaných informací říci, ale když odstraníš -q, tak zjistíš, co našel.

    Celé grepování výstupu ps je navíc zvrácené, ps má volby typu -C, které umožňují filtrovat podle příkazu a -o, které umožňuje vypisovat o příkazu jen to, co chceš.
    11.3.2013 13:45 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Tak zkusím lepe položit dotaz, potřebuji zjistit, jestli script již nebeží, jelikož je povolena poze jediná instance programu, a jelikož spouštím to zjištění přímo z toho scriptu který to má zjistit, tudíž je to komplikovanější a podmínka by asi měla být něco jako
    if [$res -lt 2 ]
    ale nevím jak na to..
    11.3.2013 13:47 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Pokud odstraním -q tak to najde jednou spuštěný script, asi ten ze kterého se ten test, což dáva smysl, ale jak zjsitit jestli je spuětěn jednou nebo vícekrát?
    11.3.2013 13:56 ubka7617
    Rozbalit Rozbalit vše Re: Oprava scriptu

    if [ $(pgrep -c foo.sh)  -eq 0  ]; then
    echo nebezi
    else
    echo bezi

    fi

    11.3.2013 14:17 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Výsledek je vždy 0 i když běží program vícekrát..
    11.3.2013 14:31 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Oprava scriptu

    Aj takto je vysledok 0 ? :

    #! /bin/bash
    if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
    then
        echo nebezi
    else
        echo bezi
    fi

    Ja len, ci si nezabudol zamenit foo.sh za nazov tvojho skriptu. Nic v zlom, sa mi aj horsie uz stalo. :)

    11.3.2013 14:56 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu

    Ja len, ci si nezabudol zamenit foo.sh za nazov tvojho skriptu. Nic v zlom, sa mi aj horsie uz stalo. :)

    Ano, stává se to i mě ;-) ale v tomto případě se to opravdu soubor tak jmenuje. No pokud v tom tvém kodu změním -eq 0 za -eq 1 tak to funguje jak má.. Díky moc
    11.3.2013 16:55 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Oprava scriptu

    Akurat, ze to v tom pripade nefunguje. Logicky je to nespravne, bo ak je pocet beziacich procesov s tymto nazvom rovny 1, tak dalsi uz nespustim a ak je rovny 0, tak ho spustim a toto je presne moj kod a tvoje zadanie.

    Skus dat do svojho kodu nasledovne:

    echo '==== kontrola ===='
    echo "skript: $0"
    echo "vypis procesov:"
    ps xau | grep "${0##*/}"
    echo '=== koniec ===''

    a na zaciatok skriptu, hned za shebang daj

    set -x

    a daj sem vsetko, co to vypluje.

    11.3.2013 17:10 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Tady to je..

    root@debian:~# ./foo.sh
    ++ echo '==== kontrola ===='
    ==== kontrola ====
    ++ echo 'skript: ./foo.sh'
    skript: ./foo.sh
    ++ echo 'vypis procesov:'
    vypis procesov:
    ++ grep foo.sh
    ++ ps xau
    root     13932  0.0  0.0   6544   880 pts/2    S+   17:09   0:00 grep foo.sh
    ./foo.sh: řádek 7: neočekávaný konec souboru při hledání znaku odpovídajícímu „'“
    ./foo.sh: řádek 8: chyba syntaxe: nenadálý konec souboru
    root@debian:~#
    11.3.2013 19:45 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Oprava scriptu

    Skor som mal na mysli, ze by si to pridal k tomu svojmu kodu, mozno by sa ukazalo, co sa skutocne deje. U mna to funguje spravne a este minimalne dalsi clovek z tohto vlakna to potvrdil. A najlepsie, tak s uz spustenym procesom a bez taktiez.

    11.3.2013 20:33 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    No mě to běží s tou jedničkou bez problémů, čili to tak nechám akorát bych potřeboval dát do té podmínky pevný název
    if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
    zkoušel jsem to takto ale nejde to
    if [[ "$(pgrep -c "foo.sh")" -eq 0 ]]
    díky
    11.3.2013 21:09 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Oprava scriptu

    Ak pouzijes premennu, tak sa nemusis nikdy starat. Ak to das napevno, tak niekomu das kod, pomenuje si skript inak a uz to nepojde, ako ma. A prechadzat skript, ze kde to este je pouzite, ze mi to pada stale, neviem, su aj zaujimavejsie veci, co riesit. Inak napevno, ako si to ukazal, neviem.

    p.s.: Ak ti to bezi s jednickou, tak niekde musi byt zrada, ale kod tu cely nie je. Takze to je na tebe.

    12.3.2013 13:52 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    To je sice pravda, ale problém je v tom, že ten soubor sourcnu do toho foo.sh a tím pádem už to nefunguje, jelikož se to provede v tom sourcovaném souboru, jelikož tam je automatické zjištění názvu, což už není foo.sh :-(
    12.3.2013 14:51 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Oprava scriptu

    To nie je ziaden problem, vid nasledujuce (dva skripty, jeden test1.bash a druhy test2.bash ):

    #! /bin/bash
    source test2.bash "$0"
    echo "nazov skriptu z test1.bash: ${0##*/}"
    #! /bin/bash
    echo "nazov hlavneho skriptu zo sourcovaneho test2.bash: ${1##*/}"

    Jednoducho je to iba o predavani parametrov.

    12.3.2013 15:37 potato
    Rozbalit Rozbalit vše Re: Oprava scriptu
    A proč to filtruješ podle názvu procesu namísto pidu toho shellu, který je v $$?
    11.3.2013 15:30 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    ještě jedna věc,

    když nahradím tohle
    if [[ "$(pgrep -c "${0##*/}")" -eq 0 ]]
    za tohle
    if [[ "$(pgrep -c "foo.sh")" -eq 0 ]]
    tak to přestane fungovat, proc? Díky
    11.3.2013 14:44 ubka7617
    Rozbalit Rozbalit vše Re: Oprava scriptu

    vola sa to foo.sh ? som to skusal a v pohode funguje spravne

    11.3.2013 14:57 TT
    Rozbalit Rozbalit vše Re: Oprava scriptu
    Ano volá se to foo.sh a u mě to nefunguje, což je divný že u tebe ano :-(

    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.