Ubuntu Cinnamon bude od Ubuntu 23.04 oficiální odnoží Ubuntu (návrh, schválení).
Byla vydána nová major verze 5.0 účetního softwaru GnuCash (Wikipedie). Ve formátu Flatpak je již k dispozici na Flathubu.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Alwa's Awakening (ProtonDB).
Byla vydána verze 3.28.0 2D CAD (computer-aided design) softwaru QCAD (Wikipedie). Přehled novinek v Changelogu.
Změna ve vedení společnosti SUSE. Dosavadní CEO Melissa Di Donato odstoupila. Od 1. května je novým CEO Dirk-Peter van Leeuwen, bývalý Senior Vice President a General Manager ve společnosti Red Hat.
CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag). Vydána byla nová major verze 10 (aktuálně 10.4.0). Přehled novinek v Changelogu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch OTA-1 Focal založené na Ubuntu 20.04 Focal Fossa.
Společnost Red Hat slaví 30 let.
Ve věku 91 let zemřel izraelský informatik Ja'akov Ziv, spolutvůrce bezztrátových kompresních algoritmů LZ77, LZ78 a LZW (Lempel–Ziv–Welch).
Byla představena nová Arduino deska Arduino UNO R4 s 32bitovým MCU RA4M1 (Arm Cortex-M4). Desku lze zatím získat pouze v rámci early access programu.
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:
apachectl -t echo $?
if apachectl -t &> /dev/null; then echo "ok" else echo "ko" fi
get_APACHE_syntax() { apache2ctl -t | egrep -i "Syntax OK" }nesmie to byt na 1 riadku ale samostatne
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.
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.
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.
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.
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í.
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.
Tiskni
Sdílej: