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íží...
dnes 01:02 | Zajímavý článek

Minulý týden byly vydány verze 1.2.3 a 1.1.7 webového poštovního klienta Roundcube. V oznámení o vydání bylo zmíněno řešení bezpečnostního problému nalezeného společností RIPS a souvisejícího s voláním funkce mail() v PHP. Tento týden byly zveřejněny podrobnosti. Útočník mohl pomocí speciálně připraveného emailu spustit na serveru libovolný příkaz. Stejně, jak je popsáno v článku Exploit PHP’s mail() to get remote code execution z roku 2014.

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

Byla vydána verze 0.98 svobodného nelineárního video editoru Pitivi. Z novinek lze zmínit například přizpůsobitelné klávesové zkratky. Videoukázka práce s nejnovější verzí Pitivi na YouTube.

Ladislav Hagara | Komentářů: 1
včera 15:00 | Zajímavý software

Stop motion je technika animace, při níž je reálný objekt mezi jednotlivými snímky ručně upravován a posouván o malé úseky, tak aby po spojení vyvolala animace dojem spojitosti. Jaký software lze pro stop motion použít na Linuxu? Článek na OMG! Ubuntu! představuje Heron Animation. Ten bohužel podporuje pouze webové kamery. Podpora digitálních zrcadlovek je začleněna například v programu qStopMotion.

Ladislav Hagara | Komentářů: 3
7.12. 21:21 | Nová verze Ladislav Hagara | Komentářů: 0
7.12. 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ářů: 2
7.12. 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ářů: 6
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ářů: 27
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
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%)
 (7%)
 (5%)
 (3%)
Celkem 797 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Bash script - nefunkční příkazy

18.12.2009 22:57 Thomas123 | skóre: 15
Bash script - nefunkční příkazy
Přečteno: 340×

Zdravím,

snažím se vyrobit jednoduchý bash script, kde při jeho spuštění se mi zkontroluje konfigurace Apache2 a když bude v pořádku, tak se ukončí. Když nebude v pořádku, tak to vypíše chybu třeba "Špatná konfigurace". Něco jsem tedy vymyslel, ale z nějakého důvodu mi nefunguje grep, a další věci, takže mi to nefunguje a nevidím chybu. Ono takovým problémem jsem zjistil, že je už samotný příkaz. Pokud se ten příkaz na kontrolu syntaxe snažím prohnat přes grep, tak vždy dostanu to stejné.

#!/bin/sh

get_APACHE_syntax() {apache2ctl -t | egrep -i "Syntax OK"}
APACHE_CHECK_SYNTAX=`get_APACHE_syntax`

if [ $APACHE_CHECK_SYNTAX == "0" ]; then
echo "Good";
else
echo "Bad";
fi

Ptám se zkušenějších, kde je chyba? Spouštím to pod rootem a nějak to nejde.


Řešení dotazu:


Odpovědi

Jesus Jimenez avatar 18.12.2009 23:46 Jesus Jimenez | skóre: 28
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
A nevraci apachectl navratovou hodnotu?
apachectl -t
echo $?
Doaenův zákon průtahů: Čím pomaleji pracuješ, tím méně naděláš chyb. -- Murphy
19.12.2009 12:45 Thomas123 | skóre: 15
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Díky, tady byla chyba. Nyní mi to už po pár dalších úpravých funguje.
Jesus Jimenez avatar 18.12.2009 23:49 Jesus Jimenez | skóre: 28
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
if apachectl -t &> /dev/null; then
echo "ok"
else
echo "ko"
fi
Doaenův zákon průtahů: Čím pomaleji pracuješ, tím méně naděláš chyb. -- Murphy
hikikomori82 avatar 19.12.2009 00:02 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
if [ "$APACHE_CHECK_SYNTAX" = "0" ]; then
19.12.2009 00:13 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
(Jen) tím ale skript fungovat nezačne.
hikikomori82 avatar 19.12.2009 00:28 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
get_APACHE_syntax() {
apache2ctl -t | egrep -i "Syntax OK"
}
nesmie to byt na 1 riadku ale samostatne
19.12.2009 00:31 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Pořád nestačí… Jinak definice funkce se dá napsat i na jeden řádek, jen by za tím příkazem musel být středník.
19.12.2009 00:11 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy

Do proměnné APACHE_CHECK_SYNTAX neukládáte návratovou hodnotu, ale výstup té funkce, tedy buď prázdný řetězec nebo "Syntax OK".

Čtení zbytku odpovědi je na vlastní riziko. Bude-li se někdo cítit dotčen, byl varován.

Opravdu nechápu, proč tolik lidí - a především začátečníků, kteří k tomu mají nejméně důvodů - automaticky předpokládá, že chybu nemohli za žádných okolností udělat oni. Takže když jim nechodí skript, automaticky předpokládají, že "jim nefunguje grep", když jim zlobí úloha spouštěná přes cron, tak hned "nefunguje cron" atd. Opravdu není pravděpodobnější, že je chyba v čerstvě napsaném skriptu, navíc napsaném někým, kdo nemá moc zkušeností, než že je v programu, který běžně používají statisíce, možná miliony lidí?

V daném případě stačilo místo podezírání egrepu udělat to úplně základní: buď přidat do specifikace interpreteru přepínač -x nebo aspoň přidat jedno echo, které by zobrazilo, co se do té proměnné přiřadilo.

19.12.2009 12:44 Thomas123 | skóre: 15
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy

Neměj obavy, echo jsem si tam dával, co obsahuje daná proměnná, problémem bylo, že nikdy neobsahovala to, co měla - "Syntax OK" neobsahovala NIKDY, ale "0" obsahovala téměř vždy (občas neobsahovala vůbec nic).

Vzhledem k tomu, že jsem si to zkusil dát jako samotný příkaz do terminálu a nefungovalo mi to, tak jsem nevěděl, kde je problém.

19.12.2009 17:17 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Pokud jste to měl opravdu takhle a neměl jste tam něco úplně jiného, pak ta proměnná mohla obsahovat buď prázdný řetězec nebo něco, co je až na velikost písmen shodné s "Syntax OK". Rozhodně nemohla, a na tom trvám, obsahovat nulu.
19.12.2009 20:22 Petr Šobáň | skóre: 79 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Ale mohla on asi místo porovnání do té proměnné tu nulu uložil.
19.12.2009 21:11 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy

Proto jsem psal "Pokud jste to měl opravdu takhle a neměl jste tam něco úplně jiného". :-)

Mimochodem, další chyba toho skriptu spočívá v neověřeném (a nepravdivém) předpokladu, že apachectl to "Syntax OK" píše na standardní výstup. Takže pokud skript vypadá takhle, proměnná bude prázdná vždy.

19.12.2009 22:01 Thomas123 | skóre: 15
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy

Ano, měl jsem to takto a chvíli jsem tam měl 0, chvíli nic a chvíli "Syntax OK". Pokaždé mi to vyhodilo něco jiného, stačilo mezitím restartovat Apache a zase bylo něco jiného. Opravdu nevím, proč to tak dělalo, server jsem včera vypnul, dneska zapnul, udělal několik úprav (hlavně ta návratová hodnota mi pomohla) a jsem spokojen.

19.12.2009 22:55 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Roura, na jejímž konci je 'egrep -i "Syntax OK"' vám jako výstup "0" dát nemůže, přes to prostě vlak nejede. Ve chvíli, kdy vám z toho nula vyšla, ten skript musel vypadat jinak, i kdyby třeba jen tak, že jste to následně prohnal aritmetickou konverzí.
20.12.2009 09:41 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Bash script - nefunkční příkazy
Opravdu není pravděpodobnější, že je chyba v čerstvě napsaném skriptu, navíc napsaném někým, kdo nemá moc zkušeností, než že je v programu, který běžně používají statisíce, možná miliony lidí?
U coreutils to snad ještě tak je, u věcí hlavně kolem freedesktopu bych se nebál říci, že ne.
In Ada the typical infinite loop would normally be terminated by detonation.

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.