V březnu byla oznámena spolupráce GrapheneOS s Motorolou. Nejnovější vlajka Motorola Signature 27 je první Motorola s oficiální podporou GrapheneOS. GrapheneOS (Wikpedie) je varianta Androidu zaměřující se na bezpečnost a soukromí.
Omarchy (Wikipedie) je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 4.5.0. Nově také pro Apple Silicon, konkrétně pro M1/M2/M3/Neo MacBooky.
Byla vydána nová stabilní verze 8.3 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 156 s bezpečnostními opravami z Chromia 157. Přehled novinek i s náhledy v příspěvku na blogu.
Multimediální přehrávač mpv byl vydán ve verzi 0.42.0. Jde o větší balík změn po bezmála roce. Mimo jiné se lépe integruje s Waylandem nebo rozšiřuje podporu DVD/Blu-ray, např. umožňuje přehrávat rovnou obrazy médií (soubory iso).
Desktopové prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklé sloučením projektů Razor-qt a LXDE bylo vydáno ve verzi 2.5.0. Přehled novinek v poznámkách k vydání.
Byla vydána (𝕏) nová verze 8.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.
Byla vydána verze R14.1.7 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Bazzite (Wikipedie), tj. linuxová distribuce vycházející z Fedora Linuxu a optimalizována pro hraní počítačových her, byla vydána ve verzi 45. S Open Gaming Collective (OGC) jádrem a novým Easy Anti-Cheatem pro Linux (EAC Linux v2).
MikroTik zveřejnil vlastní bezpečnostní upozornění potvrzující, že zranitelnost linuxového jádra postihuje také RouterOS 7. Jde o use-after-free při zpracování IPv4 TCP spojení s IP options. Zranitelnost se týká provozu směřujícího na TCP službu samotného routeru, nikoli paketů, které router pouze přeposílá. Opraveno v long-term od 7.24.6, v stable od 7.25.1 a devel od 7.26beta5.
if [ -f /foo ] then echo "Soubor existuje" else echo "Soubor neexistuje" fi if [ -f /foo ]; then echo "Soubor existuje"; else echo "Soubor neexistuje"; fi
Řešení dotazu:
[-f /foo] && echo "existuje" || echo "neexistuje"
U příkazu echo není sice příliš pravděpodobné, že by skončil chybou, ale i tak bych důrazně doporučil si na podobné čuňárny nezvykat.
Nemluvě o tom, že takhle vám to skončí už chybou kvůli spuštění neexistujícího příkazu "[-f".
[ -d Documents ] && cd neexisujici-adr || echo "neexistuje"je to očekávané chování?
if [ -d Documents ]; then cd neexisujici-adr else echo "neexistuje" fitedy původní dotaz.
Problém spočívá v tom, že konstrukce "c1 && c2 || c3" spustí příkaz c3 nejen v případě, kdy selhal c1, ale i tehdy, když c1 uspěje a c2 selže. Takže např.
test -f "$dir" && cd "$dir" || echo "$dir neexistuje"
vám bude tvrdit, že adresář neexistuje, i v případě, že adresář sice existuje, ale příkaz cd selhal z jiného důvodu (třeba že na něj nemáte access).
[ -f /foo ] && (echo "existuje"; exit) || echo "neexistujeAle o moc čitelnější mi to nepřijde
[ -f /foo ] && (echo "existuje"; exit) || echo "neexistuje
Těsně vedle. Ale kdybyste tam měl "exit 0", tak už byste to obešel. Jenže…
Ale o moc čitelnější mi to nepřijde :-)
Přesně tak. Upřímně řečeno, ty operátory mají IMHO smysl jen v jednoduchých konstrukcích typu
cmd1 && cmd2 && cmd3 && cmd4 && ... cmd || exit 1
U čehokoli komplikovanějšího jsou většinou spíš na škodu než k užitku.
Tiskni
Sdílej: