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 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

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

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

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

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    včera 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    5.10. 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 35
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 17
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 11
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (45%)
     (15%)
     (17%)
     (22%)
     (15%)
     (18%)
     (16%)
     (15%)
    Celkem 181 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: Bash script, ktery se spousti v sh

    17.12.2010 22:31 ehy | skóre: 1
    Bash script, ktery se spousti v sh
    Přečteno: 368×
    Dobry den, mam jednoduchy script, ktery funguje jen na prvni spusteni. Spusti se spravne v bash. Script obsahuje na konci prikaz 'at' kde vola sam sebe. Jenze 'at' spousti script v sh coz mi nevyhovuje, protoze tam je jina syntax.
    script je v souboru aaa.sh
    #!/bin/bash
    COUNTER=0
    echo "COUNTER : [$COUNTER]">>log.txt
    let COUNTER=COUNTER+1
    echo "COUNTER : [$COUNTER]">>log.txt
    let COUNTER=COUNTER+1
    echo "COUNTER : [$COUNTER]">>log.txt
    let COUNTER=COUNTER+1
    echo "COUNTER : [$COUNTER]">>log.txt

    echo "SET $(date)">>log.txt

    at -f "aaa.sh" now+1minutes

    echo "NEW: $(atq)">>log.txt
    exit


    Chtel bych poradit jak resit tento problem. (asi existuje nejaky zpusob jak zarucit spousteni v bash)
    ps.: script vypisuje upozorneni :
    warning: commands will be executed using /bin/sh
    Diky

    Řešení dotazu:


    Odpovědi

    Řešení 1× (ehy (tazatel))
    17.12.2010 23:02 Sten
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    [ -n "$BASH" ] || exec /bin/bash $0
    18.12.2010 00:19 ehy | skóre: 1
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    diky ... vyzkousim to
    Napadlo me, ze kdyz spoustim stejny script mohl bych tento script pouze uspat prikazem sleep.
    18.12.2010 03:05 ehy | skóre: 1
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    tak nevim jak jste to myslel, ale tohle nefunguje :
    at -n "$BASH" -f "aaa.sh" now+1minutes
    -naznamy parameter -n
    at -f "exec /bin/bash $0" now+1minutes
    -nemuze najit cestu (bez parametru -f to zase pise syntax err)
    --------------------------------------------------------------------
    jinak jsem to vyresil tak, ze spustim pomocny soubor kde volam ten exec jak jste mi radil (moc elegantni to ale neni :( ) :
    at -f "startBash.sh" now+1minutes
    v souboru startBash.sh mam:
    #!/bin/bash
    exec bash aaa.sh
    Chytrex avatar 18.12.2010 03:18 Chytrex | skóre: 30 | Bohumín
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    No pokud se nepletu tak to co napsal sten je přesně syntax který ověří zda existuje bash, a pokud tedy ano, tak spustí sebe sama znovu. $0 je IIRC proměnná s názvem právě probíhajícího scriptu.
    Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
    18.12.2010 03:51 ehy | skóre: 1
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    mas pravdu je to cely prikaz :)
    ja jsem si neuvedomil, ze by prikaz mohl vypadat taky takto :)
    ovsem je tam chybka :
    ten $0 vraci :"sh"
    $1 a $2 jsou prazdne :( tak nevim kde je schovane to jmeno spusteneho scriptu

    Takze reseni v tuto chvili mam :
    radek 1:[ -n "$BASH" ] || exec /bin/bash aaa.sh "
    17.12.2010 23:17 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    + si pozri, k comu sluzi cron.
    If you hold a Unix shell up to your ear, you can you hear the C.
    18.12.2010 00:14 ehy | skóre: 1
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    Nad cronem jsem premyslel jako prvni, ale potrebuji aby dalsi spusteni scriptu bylo za presny cas od jeho ukonceni. (doba vykonavani scriptu neni vzdy stejna) Ale cron nabizi "jen" periodicke opakovani spusteni v danny cas.
    Pro me by bylo vyhodne, kdybych mohl cron zavolat s nejakym parametrem "only once" a samozrejme cas vykonavani.
    Jestli cron dobre znate muzete mi poradit v tomto smeru ...
    Diky
    18.12.2010 00:35 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    To neviem, to asi ten "at", ale toto riesenie bude krehke v tom, ze ak ten skript spadne z nejakeho dovodu a nenaplanuje svoj dalsi beh, tak uz sa sam nenahodi.

    Ak staci nejaka granularita casu po minutach, tak mozes do cronu hodit tento skript a v nejakom subore si skladovat datum posledneho jeho dobehu. Skript sa pozrie, ci uz uplynula pozadovana doba a bud skonci, alebo ide robit tu hlavnu akciu. Na konci prepise subor s casom. Ak by spadol pocas hlavnej akcie, tak sa subor neprepise a o minutu sa to skusi znova.

    Ak hlavna akcia moze trvat aj dlhsie ako minutu, tak bud zmenis granularitu, alebo si este zavedies subor, do kt. budes zapisovat aj datum nastartovania skriptu a na konci skriptu ho budes mazat - aby nebezali 2 hlavne skripty sucasne.
    If you hold a Unix shell up to your ear, you can you hear the C.
    18.12.2010 00:38 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    Spustenim
    bash skript.sh
    zarucis jeho beh v bashi.
    If you hold a Unix shell up to your ear, you can you hear the C.
    18.12.2010 03:10 ehy | skóre: 1
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    to ano, ale nedokazu ho dostat do toho "at" prikazu. Uz jsem to psal jako odpoved Stenovi, reseni jsem nasel, ale neni moc hezke :(
    Řešení 1× (ehy (tazatel))
    18.12.2010 12:03 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    co takto
    echo 'bash -c aaa.sh' | at now+1minutes
    If you hold a Unix shell up to your ear, you can you hear the C.
    pavlix avatar 18.12.2010 13:42 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Bash script, ktery se spousti v sh
    Pokud má skript něco dělat v různých časových intervalech, doporučil bych z něj udělat démona a používat sleep (čekání s přesností na vteřiny).

    Pak ho stačí jednou spustit a nechat běžet.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.

    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.