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 18:55 | Komunita

    Debian dnes slaví 33 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 1
    dnes 04:22 | Komunita

    Probíhá hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu mají na výběr 9 možností (návrhy A až H a žádný z nich).

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

    Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové major verzi 4.0.0 - The Quattro Release. Videopředstavení na YouTube. Celý desktop shell byl přepsán do Quickshellu. Přidána byla podpora pluginů.

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

    Francouzská Ústavní rada zamítla zákaz používání sociálních sítí dětem mladším 15 let. Francouzská obdoba ústavního soudu uvedla, že opatření představuje nepřiměřený zásah do svobody projevu. Francouzský parlament zákaz schválil na konci července, začít platit měl od září. Šlo o první zákaz sociálních sítí pro děti v Evropě. Členové Ústavní rady se domnívají, že ustanovení „představuje zásah, který není přiměřený, nezbytný ani

    … více »
    Ladislav Hagara | Komentářů: 1
    14.8. 16:33 | Zajímavý projekt

    Open-source trackball Ploopy Adept má novou verzi nazvanou A+. Stále jde o symetrický desktopový trackball s šasi z 3D tiskárny a firmwarem QMK. Novinkami jsou dvojice tlačítek, jimiž půjde také otáčet, a volitelná opěrka ruky. Funkcionalita firmwaru je rozšířena o gesta, vrstvy a možnost konfigurace za běhu. Schémata a kód jsou jako obvykle na GitHubu. A+ půjde předobjednat za 99 CAD (bez dopravy a cla/DPH).

    |🇵🇸 | Komentářů: 3
    14.8. 14:33 | IT novinky

    Prusa Research představil nové modely svých 3D tiskáren: Prusa XL+, CORE One+ (Gen 2) a CORE One L+.

    Ladislav Hagara | Komentářů: 1
    14.8. 13:33 | Nová verze

    Crown je multiplatformní open source herní engine. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT a GPLv3+. Byla vydána nová verze 0.64. Vyzkoušet lze online demo.

    Ladislav Hagara | Komentářů: 0
    14.8. 03:44 | Nová verze

    NVIDIA na konci ledna vydala v beta verzi nativního linuxového klienta své cloudové herní služby GeForce NOW. Včera oznámila ukončení beta verze a oficiální podporu Linuxu.

    Ladislav Hagara | Komentářů: 0
    14.8. 02:33 | Nová verze

    Byla vydána nová verze 3.5.0 nástroje pro inkrementální kopírování souborů rsync (Wikipedie). Přehled oprav a vylepšení v souboru NEWS. Řešeno je 33 zranitelností.

    Ladislav Hagara | Komentářů: 0
    14.8. 02:22 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 31 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (18%)
     (30%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2400 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník


    Dotaz: Bash: Spravny zapis hodnoty premennej

    31.10.2010 10:35 Patrik Uhrak | skóre: 31 | blog: pato
    Bash: Spravny zapis hodnoty premennej
    Přečteno: 443×

    Zdravim.

    Snazim sa o spravny zapis v tomto pripade:

    #! /bin/bash
    DATE="$(which date)"

    NOW_CMD="$DATE +%s"
    TODAY_CMD="$DATE +%F"
    TOMORROW_CMD="$DATE -d tomorrow +%F"
    # potialto je to v poriadku

    # toto uz ale v poriadku nie je
    SINCE="$DATE "$($TODAY_CMD) ${1}" +%s"

    Potrebujem dostat vzdy aktualny cas v cykle a preto takto. Ci je to ten najidealnejsi sposob, neviem, ale ...

    Vysledok vyssie uvedeneho prikladu je takyto:

    pato@debian:~$ bash -x ./test.bash 15:00
    ++ which date
    + DATE=/bin/date
    + NOW_CMD='/bin/date +%s'
    + TODAY_CMD='/bin/date +%F'
    + TOMORROW_CMD='/bin/date -d tomorrow +%F'
    ++ /bin/date +%F
    + SINCE='/bin/date 2010-10-31'
    + '15:00 +%s'
    ./test.bash: line 50: 15:00 +%s: command not found

    Ako ho donutit, aby to 15:00 bral ako vstup pre date a nie ako novy prikaz? Tusim v kostiach, ze to bude trivialne, ale mna tu nic nenapada momentalne. Dakujem.


    Řešení dotazu:


    Odpovědi

    David Watzke avatar 31.10.2010 11:38 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej
    I kdybyste to zapsal správně, snažíte se spouštět něco jako
    $ date "2010-10-31 15:00" +%s
    date: nadbytečný operand „+%s“
    Více informací získáte příkazem „date --help“.
    což nedává smysl. Můžete to nejdřív objasnit?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    31.10.2010 13:08 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Presne, ja tomu rozumiem, co sa tam deje. Moj problem je, ako takemuto chovaniu zabranit/predist? Keby ste uvodzil hodnoty pre date, aby sa chovali ako jeden retazec, tak by dal spravny vysledok. Ako toto ale aplikovat do mojho postupu z prveho prispevku?

    31.10.2010 13:44 mato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej
    tak ako hore uviedol david, musis potom pastnut vacsiu cast scriptu alebo aspon zistit a povedat co je logika scriptu .. tie tvoje ""treba escapnut, alebo prepisat na:
    
    DATE="`which date`"             # ; just in case
    
    NOW_CMD="`$DATE +%s`"
    TODAY_CMD="`$DATE +%F`"
    TOMORROW_CMD="`$DATE -d tomorrow +%F`"
    
    SINCE="`$DATE $($TODAY_CMD $1) +%s`"
    
    pricom tie uvodzovky su tam pre istotu, keby naahodou date cmd bol v nestandardnej ceste, napr /usr/very\ nasty\ location/bin

    pricom "2010-10-31 15:00" je blbost

    31.10.2010 14:42 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Dakujem za prispevok, ale mam par pripomienok:

    1. Co je blbost na tomto: "2010-10-31 15:00" ?

    Skus toto:

    date --date "2010-10-31 15:00" +%s

    2. Ako escapujes ty? Lebo ja ziadne escapovanie nevidim v tvojej uprave.

    3. V podstate si prepisal com som dal ja a plus jedna chyba. (ale to sa mi hovori, ked ja som mal vo svojom skriptu od zaciatku)

    K tej chybe, toto je tvoje:

    SINCE="`$DATE $($TODAY_CMD $1) +%s`"

    co sa da zapisat aj takto:

    SINCE="$(date --date $(date +%F 15:00) +%s)"

    Spravne to je v mojom rieseni, je nutne prv vykonat date +%F a az potom pridat 15:00 k tomu. ;)

     

    Toto je o tom prepisani vlastne;

    VAR1="`date +%s`"
    VAR2="$(date +%s)"
    echo "$VAR1"
    echo "$VAR2"

    Tie sposoby zapisu su totiz ekvivalentom. Akurat ten druhy je lepsie citatelny a je mozne vnorovat dalsie a dalsie prikazy. Vid vlastne moje riesenie tejto temy. ;)

     

    Kazdopadne, ziadna zast ani cokolvek ineho necitim. Snazil si sa pomoct, cenim si to a to je tak vsetko.

    31.10.2010 15:57 mato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej
    mne netrklo ze "2010-10-31 15:00" je datum a cas :) moja chyba

    ja som hore uviedol,ze je mozne pouzit alt. zapis, kde sa potom nestratis v uvodzovkach (alebo aspon nie tak rychlo)
    ako si doplnil date --date -> to uz ale meni podstatu toho, co ten script ma robit - preto som sa pytal, ze co chces dosiahnut a povedal, ze cmd "datum 14:00" je blbost .. v spojeni s prepinacom --date je to vsak uz cosi ine

    hlavne, ze si to vyriesil :)

    31.10.2010 16:51 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Ok, rozumiem. Ale popravde, to o tej blbosti mi pomohlo paradoxne najviac. Som ti chcel dat ten priklad a sa ukazalo, ze mi tam chybalo to --date. Samozrejme uplne vsade. :)

    Co sa ale tyka toho alternativneho zapisu, mne nepride az taky prehladny. ;) Ale mozno vec nazoru.

    31.10.2010 11:46 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Dobry den

    Nepomohly by zpetne lomitka ?

    SINCE="$DATE \"$($TODAY_CMD) ${1}\" +%s"

    Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
    31.10.2010 13:18 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Dakujem, to som uz skusal, zial to nepomaha. Samotna hodnota SINCE je sice v spravnom tvare aj uvodzenie je spravne, ale pri jeho vykonani opat nastane rovnaky problem. Vid nizsie:

    DATE="$(which date)"

    NOW_CMD="$DATE +%s"
    TODAY_CMD="$DATE +%F"
    TOMORROW_CMD="$DATE -d tomorrow +%F"
    # potialto je to v poriadku

    # toto uz ale v poriadku nie je
    SINCE="$DATE \"$($TODAY_CMD) ${1}\" +%s"
    $SINCE

    a vysledok:

    pato@debian:~$ bash -x ./test.bash 15:00
    ++ which date
    + DATE=/bin/date
    + NOW_CMD='/bin/date +%s'
    + TODAY_CMD='/bin/date +%F'
    + TOMORROW_CMD='/bin/date -d tomorrow +%F'
    ++ /bin/date +%F
    + SINCE='/bin/date "2010-10-31 15:00" +%s'
    + /bin/date '"2010-10-31' '15:00"' +%s
    /bin/date: extra operand `15:00"'
    Try `/bin/date --help' for more information.

    Kazdopadne dakuje, sam som to nespomenul predtym.

    31.10.2010 14:28 Patrik Uhrak | skóre: 31 | blog: pato
    Rozbalit Rozbalit vše Re: Bash: Spravny zapis hodnoty premennej

    Vyriesene. Chyba bola trivialna, spravna syntax pre konvert daneho casu je nasledovna:

    date --date "cas" +%[moznosti] # z hlavy som to pisal a nejak som pozabudol

    Takze riesenie bolo uz v prvom mojom prispevku v poriadku, az na tu malickost:

    DATE="$(which date)"

    NOW_CMD="$DATE +%s"
    TODAY_CMD="$DATE +%F"
    TOMORROW_CMD="$DATE -d tomorrow +%F"

    for INDEX in {1..9}
    do
    SINCE="$($DATE --date "$($TODAY_CMD) ${1}:0${INDEX}" +%s)"
    sleep 1
    done

    a vysledok je presne ako som pozadoval, s kazdou jednou iteraciou ziskat aktualny cas:

    pato@debian:~$ bash -x ./test.bash 14:00
    ++ which date
    + DATE=/bin/date
    + NOW_CMD='/bin/date +%s'
    + TODAY_CMD='/bin/date +%F'
    + TOMORROW_CMD='/bin/date -d tomorrow +%F'
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:01' +%s
    + SINCE=1288533601
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:02' +%s
    + SINCE=1288533602
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:03' +%s
    + SINCE=1288533603
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:04' +%s
    + SINCE=1288533604
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:05' +%s
    + SINCE=1288533605
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:06' +%s
    + SINCE=1288533606
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:07' +%s
    + SINCE=1288533607
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:08' +%s
    + SINCE=1288533608
    + sleep 1
    + for INDEX in '{1..9}'
    +++ /bin/date +%F
    ++ /bin/date --date '2010-10-31 14:00:09' +%s
    + SINCE=1288533609
    + sleep 1

    Takze uz je to v poriadku. Dakujem vsetkym.

     

    
                

    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.