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 10:55 | Pozvánky

    Organizátoři konference LinuxDays ukončili veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata, která na letošní konferenci zaznějí. Hlasovat můžete do neděle 7. září. Poté podle výsledků hlasování organizátoři sestaví program pro letošní ročník. Konference proběhne 4. a 5. října v Praze.

    Petr Krčmář | Komentářů: 7
    dnes 02:22 | Nová verze

    Byla vydána verze 11.0.0 vizuálního programovacího jazyka Snap! (Wikipedie) inspirovaného jazykem Scratch (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 06:00 | 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. Vypíchnout lze, že v Plasmě byl implementován 22letý požadavek. Historie schránky nově umožňuje ohvězdičkovat vybrané položky a mít k ním trvalý a snadný přístup.

    Ladislav Hagara | Komentářů: 0
    30.8. 20:00 | Nová verze

    Wayfire, kompozitní správce oken běžící nad Waylandem a využívající wlroots, byl vydán ve verzi 0.10.0. Zdrojové kódy jsou k dispozici na GitHubu. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    30.8. 04:00 | Komunita

    Před necelými čtyřmi měsíci byl Steven Deobald jmenován novým výkonným ředitelem GNOME Foundation. Včera skončil, protože "nebyl pro tuto roli v tento čas ten pravý".

    Ladislav Hagara | Komentářů: 7
    29.8. 18:33 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 156 (pdf).

    Ladislav Hagara | Komentářů: 1
    29.8. 15:11 | Nová verze

    Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.8.1. Přehled novinek v Changelogu.

    Ladislav Hagara | Komentářů: 0
    29.8. 12:11 | IT novinky

    Včera večer měl na YouTube premiéru dokumentární film Python: The Documentary | An origin story.

    Ladislav Hagara | Komentářů: 0
    28.8. 23:33 | Nová verze

    Společnost comma.ai po třech letech od vydání verze 0.9 vydala novou verzi 0.10 open source pokročilého asistenčního systému pro řidiče openpilot (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 0
    28.8. 21:55 | Nová verze Ladislav Hagara | Komentářů: 4
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (81%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 124 hlasů
     Komentářů: 9, poslední 28.8. 11:53
    Rozcestník

    Dotaz: posielanie "signalov" medzi beziacimi bash scriptami

    17.10.2011 15:28 eth4rendil | skóre: 13
    posielanie "signalov" medzi beziacimi bash scriptami
    Přečteno: 233×
    Dobrý deň,

    chcel by som sa spýtať. Je možné medzi bežiacimi bash scriptami posielať premenné. Teda napr. script xy je spustený 10 krát s iným argumentom. Teda jeden script odošle druhému "signál" ktorým si druhý zmeni napr. premennú. Blbo sa mi to vysvetluje radšej príklad :) :

    main.sh:
    #!/bin/bash
    
    ARGUMENTS=( arg1 arg2 arg3 arg4 arg5 )
    
            for ARGUMENT in ${ARGUMENTS[@]}
            do
                    ./slave.sh $ARGUMENT &
                    ./slave.sh $ARGUMENT &
            done
    
    slave.sh:
    #!/bin/bash
    
    ARGUMENT=$1
    
    while [ 1 ]
    do
            echo $ARGUMENT 
            sleep 30
    done
    
    main.sh spustí 10 krát script slave.sh s rôznymi argumentami. Ciel je aby script napr. "slave.sh arg1" odoslal signál na zmenu premennej napr. "slave.sh arg2" a ten premennu zmenil... Jedine čo ma napladlo je, že by sa premenne ukladali do dočasneho suboru s nazvom hodnota argumentu a od tial by si to slave.sh v každom cykle čital. Ale toto riešenie sa mi nezda moc dobré. Napadá Vás niečo? ďakujem

    Řešení dotazu:


    Odpovědi

    17.10.2011 15:58 NN
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    Promennou muzes exportovat tak, ze ji subshell zdedi:
    export ARG=val
    NN
    17.10.2011 16:09 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    dakujem. Ale slave.sh je subshell main.sh. Mne ide o odoslanie premennej medzi konkrétnymi slave.sh scriptami.
    Řešení 1× (eth4rendil (tazatel))
    17.10.2011 16:09 l4m4
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    =====[ master.sh ]=====
    #!/bin/bash
    
    coproc bash slave.sh
    #echo $0: pid is ${COPROC_PID}
    #echo $0: output is ${COPROC[0]}
    #echo $0: input is ${COPROC[1]}
    queue=/dev/fd/${COPROC[1]}
    
    echo "A message" >$queue
    echo "Another message" >$queue
    sleep 5
    echo "A delayed message" >$queue
    
    =====[ slave.sh ]=====
    #!/bin/bash
    while read message; do
        echo "$0: Got a message: $message." 1>&2
    done
    echo "$0: Finished." 1>&2
    
    17.10.2011 16:20 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    uzasne, dakujem pekne
    17.10.2011 16:37 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    len škoda, že sa môže coproc spustiť iba 1x. Pri pokuse spustiť viac krát sa zobrazí: warning: execute_coproc: coproc [26841:COPROC] still exists

    niekde som objavil takéto niečo:
    #!/bin/bash
    
    # Clone stdout to 3
    exec 3>&1
    # Run TRA filtering letter "a"
    coproc TRA ( sed s/a/A/g >&3 )
    # Run TRB filtering letter "b"
    coproc TRB ( sed s/b/B/g >&3 )
    
    while read ; do
            case $REPLY in
            /* )
                    echo "$REPLY" >&${TRB[1]}
                    ;;
            * )
                    echo "$REPLY" >&${TRA[1]}
                    ;;
            esac
    done
    
    # Close input (otherwise script will not end on EOF).
    eval exec ${TRA[1]}\>\&-
    eval exec ${TRB[1]}\>\&-
    vyzerá to o niečo zložitejšie, ale snáď to bude fungovať :)
    17.10.2011 16:44 dustin | skóre: 63 | blog: dustin
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    Jen poznámka - je to feature bash 4, např. v oldstable debian lenny ještě není k dispozici. Stejně jako třeba asociativní pole - skript jsem po nasazení na produkční server s lenny musel přepsat do pythonu :)
    17.10.2011 16:52 eth4rendil | skóre: 13
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    to som mal stastie :)
    GNU bash, version 4.1.5(1)-release
    Fungovať to funguje ale toho warningu sa nezbavím :/
    17.10.2011 17:30 l4m4
    Rozbalit Rozbalit vše Re: posielanie "signalov" medzi beziacimi bash scriptami
    coproc lze použít vícekrát i bez warningu, a to s jiným NAME; akorát tomu neumím vnutit podle dokumentace jiný NAME -- a nikdy jsem to nepotřeboval tak moc, abych musel zjistit jak to tedy udělat.

    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.