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:44 | Nová verze

    Minulý týden byl oficiálně vydán Android 17. Detaily na blogu a stránkách věnovaných vývojářům.

    Ladislav Hagara | Komentářů: 2
    včera 20:00 | IT novinky

    Dnes jde do prodeje zařízení Steam Machine. Steam Machine 512 GB za 1 039 EUR a Steam Machine 2 TB za 1 359 EUR. Do čtvrtka 25. června do 19:00 se lze zapsat na seznamy. Ty budou jednorázově náhodně slosovány, čímž bude určeno pořadí rezervací a čekacích listin.

    Ladislav Hagara | Komentářů: 2
    včera 14:44 | Nová verze

    Vývojáři OpenMW (Wikipedie) oznámili vydání verze 0.51.0 této svobodné implementace enginu pro hru The Elder Scrolls III: Morrowind. Přehled novinek v oznámení o vydání a také na YouTube a PeerTube.

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

    Byla vydána nová verze 2026.3.0 "Carousels & Killer Whales" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu.

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

    Tento týden (24. a 27. června) vyprší platnost Microsoft certifikátu v UEFI vydaných v roce 2011. Nové certifikáty byly vydány v roce 2023. Kdo na počítačích, i virtuálních, používá zabezpečené spouštění (Secure Boot), měl by si ověřit, že má certifikáty aktualizovány, viz např. články na Red Hat nebo Fedora. Pro stávající systémy se nic nemění. Nadále se budou normálně spouštět. Zavaděče podepsané pouze klíčem z 2023 se ale na počítačích s pouze certifikátem 2011 nespustí. Ve Fedoře je zavaděč shim ve verzi 16.1-6 podepsán klíči 2011 i 2023.

    Ladislav Hagara | Komentářů: 4
    21.6. 19:55 | Zajímavý software

    Uživatelé mobilních telefonů s Linuxem si nyní mohou nainstalovat aplikaci Mobilní Datovka. Díky tomu je přístup k datovým schránkám dostupný i na zařízeních s mobilními linuxovými distribucemi, jako jsou například Mobian, NixOS Mobile, pmOS atd. Aplikace je dostupná na Flathubu.

    David Heidelberg | Komentářů: 3
    21.6. 13:33 | Komunita

    Software Freedom Conservancy v novém dokumentu shrnuje doporučení, jak přistupovat ke generativní AI založené na LLM při přispívání do svobodného a open-source softwaru. Mimo jiné vyzývá k obezřetnosti, transparentnosti a revizi generovaného kódu člověkem.

    |🇵🇸 | Komentářů: 9
    21.6. 13:22 | Nová verze

    Byla vydána nová verze 5.6.0 programu na úpravu digitálních fotografií darktable (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    20.6. 20:11 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.

    Ladislav Hagara | Komentářů: 0
    20.6. 19:11 | Nová verze

    Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (16%)
     (31%)
     (3%)
     (6%)
     (2%)
     (15%)
     (26%)
    Celkem 1965 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: Oprava scriptu

    11.3.2013 12:52 TT
    Oprava scriptu
    Přečteno: 617×
    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.