Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.
Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).
Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
./moj-skript.sh >/dev/null do konzoly vypisal len chybu a do suboru vsetko a ./moj-skript.sh by vypisal vsetko do konzoly aj suboru.
Skript moj-skript.sh:
#!/bin/sh # # nejako nastavene presmerovanie stdout a stderr do suboru moj-skript.log # a zaroven presmerovanie stderr na konzolu ??? /bin/ls /etc/fstab /bin/ls /nonexistsVystup skriptu
$ ./moj-skript.sh ls: /nonexists: No such file or directoryObsah log suboru moj-skript.log
/etc/fstab ls: /nonexists: No such file or directoryVdaka.
Řešení dotazu:
Tohle dělá, co chceš:
#!/bin/sh
funkce() {
/bin/ls /etc/fstab
/bin/ls /nonexists
}
mkfifo out.fifo
mkfifo err.fifo
mkfifo xxx.fifo
cat out.fifo > xxx.fifo &
cat err.fifo | tee xxx.fifo &
cat xxx.fifo > xxx.log &
funkce 1> out.fifo 2> err.fifo
wait
wait
wait
rm -f out.fifo err.fifo xxx.fifo
Ale nelíbí se mi to, říkám si, že by to mělo jít jednodušeji…
Navíc je tam problém s úklidem při nějaké chybě a s tím, že se ti můžou zprávy zapsané do STDOUT a STDERR prolnout.
Můžeš to rozvést?
V Bashi jde dosadit proces místo cesty k souboru, otázka je, jak ty výstupy pak zase spojit do jednoho… Možná nějak adaptovat tenhle příklad… ale tohle jsou docela zběsilosti – do toho článku jsem to dával spíš jako odstrašující příklad :-)
P.S. Tak trochu funguje tohle:
funkce 2> >(tee -a xxx.log) >> xxx.log
ale nelíbí se mi ten zápis do jednoho souboru ze dvou procesů bez jakékoli synchronizace…
#!/bin/sh log=moj-skript.log for file in /etc/fstab /nonexists; do /bin/ls $file >> $log 2>&1 tail -1 $log | grep "^/bin/ls: " done
( ./moj-skript.sh 2> >( tee /dev/stderr ) | sed '' ) > moj-skript.logTen
sed zajišťuje bufferování řádku podobné tomu, které se používá u výstupu na terminál. stderr zůstává stderr.
enable -f
Ten exec se normálně používá, ale problém je, že on tady chce STDERR rozdvojit, jednou ho poslat na terminál a jednou ho spojit s STDOUT a společně poslat do souboru.
V tom modulu bys musel řešit to samé – číst současně ze dvou FD a data z jednoho posílat na terminál a data z obou posílat do souboru.
#!/bin/bash # ( echo "INFO: log iba do suboru" ls /etc/fstab echo "ERROR: log do suboru aj na konzolu" >&2 ls /nonexists echo "INFO: log iba do suboru" echo "ERROR: log do suboru aj na konzolu" >&2 ) 2> >( tee /dev/stderr ) | sed '' > moj-skript.logVdaka.
Případně se to ještě řeší tak, že na začátek skriptu dáš IF, ve kterém zkontroluješ nějakou proměnnou, pokud není nastavená, tak ji nastavíš a spustíš sám sebe s tím přesměrováním:
#!/bin/bash if [ -z "$XXX" ]; then export XXX=x; echo "spouštím s přesměrováním"; "$0" "$@" &>1; fi echo "původní skript"; echo "parametry: " "$@";
Tohle se hodí i v případě, že potřebuješ potřebuješ třeba přepsat nebo doplnit nějaké CLI parametry.
Tiskni
Sdílej: