Multimediální server a user space API PipeWire (Wikipedie) poskytující PulseAudio, JACK, ALSA a GStreamer rozhraní byl vydán ve verzi 1.6.0 (Bluesky). Přehled novinek na GitLabu.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.2 a 20.04 OTA-12.
Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.0 otevřeného operačního systému pro chytré hodinky AsteroidOS (Wikipedie). Přehled novinek v oznámení o vydání a na YouTube.
WoWee je open-source klient pro MMORPG hru World of Warcraft, kompatibilní se základní verzí a rozšířeními The Burning Crusade a Wrath of the Lich King. Klient je napsaný v C++ a využívá vlastní OpenGL renderer, pro provoz vyžaduje modely, grafiku, hudbu, zvuky a další assety z originální kopie hry od Blizzardu. Zdrojový kód je na GitHubu, dostupný pod licencí MIT.
Byl představen ICT Supply Chain Security Toolbox, společný nezávazný rámec EU pro posuzování a snižování kybernetických bezpečnostních rizik v ICT dodavatelských řetězcích. Toolbox identifikuje možné rizikové scénáře ovlivňující ICT dodavatelské řetězce a na jejich podkladě nabízí koordinovaná doporučení k hodnocení a mitigaci rizik. Doporučení se dotýkají mj. podpory multi-vendor strategií a snižování závislostí na vysoce
… více »Nizozemský ministr obrany Gijs Tuinman prohlásil, že je možné stíhací letouny F-35 'jailbreaknout stejně jako iPhony', tedy upravit jejich software bez souhlasu USA nebo spolupráce s výrobcem Lockheed Martin. Tento výrok zazněl v rozhovoru na BNR Nieuwsradio, kde Tuinman naznačil, že evropské země by mohly potřebovat větší nezávislost na americké technologii. Jak by bylo jailbreak možné technicky provést pan ministr nijak nespecifikoval, nicméně je známé, že izraelské letectvo ve svých modifikovaných stíhačkách F-35 používá vlastní software.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 162 (pdf).
Sdružení CZ.NIC, správce české národní domény, zveřejnilo Domain Report za rok 2025 s klíčovými daty o vývoji domény .CZ. Na konci roku 2025 bylo v registru české národní domény celkem 1 515 860 s koncovkou .CZ. Průměrně bylo měsíčně zaregistrováno 16 222 domén, přičemž nejvíce registrací proběhlo v lednu (18 722) a nejméně pak v červnu (14 559). Podíl domén zabezpečených pomocí technologie DNSSEC se po několika letech stagnace výrazně
… více »Google představil telefon Pixel 10a. S funkci Satelitní SOS, která vás spojí se záchrannými složkami i v místech bez signálu Wi-Fi nebo mobilní sítě. Cena telefonu je od 13 290 Kč.
Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Fedora 43 Asahi Remix s KDE Plasma už funguje na M3. Zatím ale bez GPU akcelerace. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.
Děkuji
tempfile=`tempfile 2>/tmp/null` || tempfile=/tmp/test$$ trap "rm -f $tempfile" 0 1 2 5 15
tak presne nevim, ale prvni radek se pokusi nastavit do promenne docasny nazev souboru pomoci prikazu tempfile, presmerovava error vystup, pokud se to nepovede, naplni promennou tempfile cestou /temp/test<pid>. Potom se spusti prikaz trap, ktery neznam ale manual by mel napomoci. Asi to dela neco ze v pripade ze nastane jeden ze signalu 0 1 2 5 nebo 15 tak provede akci "rm -f atd". Ale opravdu jen hadam
trap provede to, co je v uvozovkách za ním - v tomto případě odstraní ten dočasný soubor, pokud odchytí některý ze signálů uvedených těmi čísly na konci. Seznam signálů tady:
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
Ještě dodám, že "signál 0" v tomto kontextu znamená normální ukončení skriptu.
Jinak v zájmu toho, kdo má ten skript používat, doufám, že to /tmp/null je ve skutečnosti jen špatně opsané /dev/null. A ten "plán B" taky vypadá dost nebezpečně.
mkdir /home/aaa 2>/dev/null cat /home/virt/doc/index.php 2>/dev/null ls /home/aaa 2>/dev/null atd.. ??
A ten "plán B" taky vypadá dost nebezpečně.to jako tohle? tempfile=/tmp/test$$ a co konkrétně?
Hm, díky za pomoc, ale to mi chcete říct, že bych měl za každý příkaz dávat 2>/dev/null ?
Ne, jen za takový, u kterého chcete zahodit případný chybový výstup.
to jako tohle? tempfile=/tmp/test$$ a co konkrétně?
Vysvětloval jsem to např. tady.
tempfile=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX) #vytvoří /tmp/result.4bYDvkblOsfKPTMDR
tempfile=/tmp/test$$ # vytvoří /tmp/test25723tudíž i při použití test$$ by byla velká náhoda aby se do toho někdo trefil, ne? Jinak tento zápis
tempfile=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)je totéž jako tento?
tempfile=`mktemp /tmp/result.XXXXXXXXXXXXXXXXX`
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX) mkdir /home/aaa 2>>$tmp cat /home/virt/doc/index.php 2>>$tmp ls /home/aaa 2>>$tmptohle? Bude účel stejny?
function foo () {
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)
mkdir /home/aaa
cat /home/virt/doc/index.php
ls /home/aaa
}
foo 2>>$tmp
Díky
1. V bashi je to totéž, u některých starších shellů by $(...) nemuselo fungovat. Na druhou stranu, varianta s $(...) je IMHO trochu přehlednější, zejména pokud chcete příkazové substituce vnořovat.
2. Ta druhá varianta nebude vůbec fungovat, protože přesměrování provedete ještě předtím, než proměnné tmp přiřadíte hodnotu. Musel byste řádek 2 přesunout někam na "8.5".
tmp=$(mktemp /tmp/result.XXXXXXXXXXXXXXXXX)
function aaa () {
#tady bude chyba
}
function bbb () {
aaa
}
bbb 2> $tmp
Mně to funguje:
mike@unicorn:~> cat x
#!/bin/bash
tmp=out
function aaa () {
echo ahoj >&2
}
function bbb () {
aaa
}
bbb 2> $tmp
mike@unicorn:~> rm -f out
mike@unicorn:~> ./x
mike@unicorn:~> cat out
ahoj
no tohle ano, jelikož to máte napsáno jinak než já, v tom případě je zcela bezpředmětné spouštět funkci takto
bbb 2> $tmpkdyž ve funkci aaa () máte echo ahoj >&2, ne? Jinak teď se dívám že používate něco jiného, patrně jistě lepšího než já.. jaký v tom je rozdíl? Díky
echo ahoj >&2 echo ahoj 2>/$tmp
echo ahoj 2>/$tmpmi nedává smysl, protože
echo neprodukuje chybový výstup. Ten se dá vyrobit právě příkazem echo ahoj >&2
Je v tom podstatný rozdíl. Měl by ses konečně podívat do manuálu....Ten se dá vyrobit právě příkazemTo jste mi to tedy vysvětlil..echo ahoj >&2
Spíše bych měl programování v bash definitivně zabalit, jelikož neobsahuje základní potřeby programátora..
>&2" přesměruje standardní výstup do standardního chybového výstupu. Asi jsi to v manuálu přehlédl. Je to jedno ze základních pravidel.
1 vstup 1 standardní výstup 1 standardní chybový výstupPokud by byla pravda to co píšete (bez urážky), že: >&2 přesměruje standardní výstup do standardního chybového výstupu a já bych tento výstup přesměroval jak píšete, tak bych přece nic na obrazovce neviděl, ne? Čili tohle je evidentně špatně (potom ale nevím proč to funguje
)
ERROR_LOG=$(mktemp /tmp/tmp.XXXXXXXXXXXXXXXXX)
(eval ${TOKS[1]}) 2>> $ERROR_LOG
a takto je to dobře ?
ERROR_LOG=$(mktemp /tmp/tmp.XXXXXXXXXXXXXXXXX)
(eval ${TOKS[1]}) >&2 $ERROR_LOG
Děkuji..
Standardní chybový výstup se standardně vypisuje na obrazovce.Souhlasím..
Je to proto, aby se chybová hlášení nevypisovala do výstupních dat.Taky souhlasím..
To je také v manuálu.Nevím, neumím americky...
Předpoklad byl chybný, zbytek tedy nemá smysl komentovat.Má, pořád nevím co je tedy to 2>. Taky je ale otázkou je, co je myšleno tím standardním výstupem. Chápu to tedy dobře? Když použiju echo "Nazdar dědku" předpokládám, že se to odešle na standardní výstup, čili obrazovka, ok? Když použiju ls /home, je to taky odesláno do standardního výstupu čili na obrazovku, pokud ale použiju ls /hhome a dostanu na obrazovku ls: cannot access /homed: No such file or directory tak se nejedná o standardní výstup ale o standardní chybový výstup, ok? No a když ten příkaz použiju takto ls /hhome >&2 /tmp/error.log tak neuvidím na obrazovce vůbec nic, taky ok? Díky
Nevím, neumím americky...
A to je snad náš problém, súdruh Haluška?
Pokud by byla pravda to co píšete (bez urážky), že: >&2 přesměruje standardní výstup do standardního chybového výstupu a já bych tento výstup přesměroval jak píšete, tak bych přece nic na obrazovce neviděl, ne?
Však se také v tom mém příkladu na terminál nic nevypsalo.
Začínám nějak tápat v tom, jestli jsem žádal o radu já vás nebo vy nás. Začínám mít pocit, že my jsme všichni blbci, kteří tomu nerozumíme a prosíme vám, abyste nám poradil… :-(
A teď poslední pokus vám vysvětlit, co se děje. Jestliže uvnitř funkce použijete
echo ahoj >&2
pak se standardní výstup (deskriptor 1) toho příkazu připojí k chybovému (deskriptor 2). Jetliže tu funkci pak zavoláte jako
funkce 2>/tmp/foo
pak se její chybový výstup (což je to slovo ahoj) přesměruje do příslušného souboru.
mkdir /home/foo 2>/tmp/loga tohle je dobře
mkdir /home/foo >2& /tmp/log
když ve funkci aaa () máte echo ahoj >&2, ne?
A v čem se to podle vás liší od kteréhokoli jiného příkazu, který něco napíše na chybový výstup? Zkuste si tam dát něco jiného a dopadne to stejně.
Tiskni
Sdílej: