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í
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
včera 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

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

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 1
6.12. 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 25
6.12. 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 786 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: OK alebo Failed? Bash

2.12.2014 16:15 dnes má meniny Bibiána
OK alebo Failed? Bash
Přečteno: 316×

Zdravim, potreboval by som v bashi testovat ci prikaz vratil nejaky vystup alebo nie. Nasiel som na toto nasledujucu vecicku:

command && echo OK || echo Failed

Mam ale problem s tym, ze sa mi zobrazi aj samotny vystup z prikazu. Ja by som potreboval iba vypisat ci OK alebo Failed. Ako nezobrazit ten vystup? Dik.


Řešení dotazu:


Odpovědi

2.12.2014 16:26 GeorgeWH | skóre: 35
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
&& a || vobec nesuvisi s tym, ci prikaz vratil alebo nevratil vystup. su to logicke operatory a riadia sa podla navratovej hodnoty predchadzajuceho prikazu/prikazov...
2.12.2014 16:47 nobody
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
# presmerovat stdout a stderr
command >/dev/null 2>/dev/null && echo OK || echo Failed
2.12.2014 19:54 nobody
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
aha, ty chces zjistovat je-li vystup, tak ten po presmerovani nebudes mit nikdy :) tohle by zrusilo vystup a testovalo navratovou hodnotu 0 (OK) a >0 (Failed)
rADOn avatar 2.12.2014 18:27 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
google a deset sekund:
if [[ -n $(ls -A) ]]; then
    echo "there are files"
else
    echo "no files found"
fi
"2^24 comments ought to be enough for anyone" -- CmdrTaco
2.12.2014 22:47 Delaunay | skóre: 17 | blog:
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
[[ -n "$(command 2>&1)" ]] && echo OK || echo Failed
3.12.2014 11:24 Sten
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Zajímavé, že si tu nikdo nevšiml té logické chyby, že i echo může vrátit chybový stav, a pak se spustí to druhé echo, i když ten příkaz byl úspěšný.

Správné řešení je použít if:
if command >/dev/null 2>&1; do
    echo OK
else
    echo Failed
fi
Nebo takováto konstrukce:
command >/dev/null 2>&1 && (echo OK || true) || echo Failed
3.12.2014 11:26 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Přesně tak. To zřetězení příkazů bývá často zrádné, když se nepromyslí do detailu.
3.12.2014 11:35 GeorgeWH | skóre: 35
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
kedy moze echo OK vratit chybovy stav?
3.12.2014 13:28 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
mike@unicorn:~> echo OK >/dev/full ; echo $?
bash: echo: chyba zápisu: Na zařízení není volné místo
1
3.12.2014 14:00 nobody
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
a bez presmerovani do full ktere si k te otazce doplnil ? ;)
kdyz patchnes bash aby echo vracelo error code i pri uspechu ? :D
3.12.2014 14:02 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Uvědomte si, že celý skript může mít přesměrovaný výstup do souboru a že zápis může selhat.
3.12.2014 14:59 Sten
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Pokaždé, když selže zápis. Skript může mít přesměrovaný výstup do souboru, kam nejde zapsat, může ho mít zavřený (například pokud jej spouští nějaký démon) nebo může být spuštěný přes SSH s nohup a spadne spojení. V tomhle případě je to trochu hnidopišství, protože selže i to druhé echo a vlastně se nic nestane, ale pokud by to někdo později upravil třeba na || rm -r data (program selhal → data jsou vadná), tak má problém. Takové chyby se navíc strašně blbě ladí, protože ze shellu by to fungovalo správně.
3.12.2014 16:29 nobody
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
oba pisete ze "muze byt presmerovano" v tomto pripade ale NENI presmerovano, takze KDY bude mit "echo ok" navratovku >0 ? v TOMTO pripade ? ;)
3.12.2014 17:00 dustin | skóre: 60 | blog: dustin
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Např. v okamžiku přesměrování výstupu celého skriptu do souboru, který neexistuje. Nebo když zrovna dojde místo. Nebo disk hodí chybu. Nebo pojedu přes ssh a nepůjde zapisovat do terminálu.

Styl programování, kdy to zrovna v této situaci funguje, ale stačí málo k úplně jiné funkci, je peklo. Pokud mě zajímá návratová hodnota A, je špatně se rozhodovat podle návratové hodnoty B.
3.12.2014 18:38 nobody
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
takze na otazku "Kdy bez presmerovani" je odpoved "Napr. pri presmerovani" ? :)

Tarmaq avatar 3.12.2014 18:48 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
asi se ti snazi naznacit, ze ikdyz v tomto uryvku kodu neni presmerovani, tak tento kod muze byt ulozen v nejakem souboru jez je spousten v jinem souboru/skriptu kde je jeho vystup presmerovan.
Don't panic!
3.12.2014 20:47 Delaunay | skóre: 17 | blog:
Rozbalit Rozbalit vše Re: OK alebo Failed? Bash
Neodpovídá zadání tazatele testovat ci prikaz vratil nejaky vystup alebo nie. Proč se tedy ve správném řešení výstup programu zcela zahazuje?

Myslím, že tazateli začátečníkovi by nejspíš vyskočila kopřivka, kdyby mu někdo poslal robustní řešení, kterému by těžko porozuměl. Například následující nebo jinou podobnou hrůzovinu :-D
[[ -n "$(command 2>&1)" ]] && { echo OK || false && true; exit; } || (echo Failed; false)

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.