abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 6
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

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

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

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

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    24.4. 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 765 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    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: 263×

    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.