První česká družice navržená a sestavená výhradně studenty se dostala na oběžnou dráhu Země. Družice KOSTKA, kterou vyvinul studentský tým YSpace z Vysokého učení technického v Brně (VUT), dnes odstartovala na palubě rakety Falcon 9 společnosti SpaceX v rámci mise Transporter-17 z kalifornské základny Vandenberg Space Force Base.
Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.
V jádře Linux byla nalezena a v dubnu letošního roku v upstreamu opravena kritická zranitelnost Bad Epoll aneb CVE-2026-46242. Jedná se o zranitelnost typu "race-condition use-after-free", která běžnému uživateli umožňuje získat práva roota. Na distribucích Linuxu i na Androidu. Dokonce i zevnitř sandboxu prohlížeče Chrome. Chyba byla do Linuxu zavedena v dubnu 2023, tj. Linux 6.4.
Byla vydána nová verze 10.4 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Vyzkoušet lze experimentální podporu postkvantového algoritmu mldsa44-ed25519.
Open Printer je otevřená kompaktní tiskárna od Open Tools. Brzy by měla být spuštěna kampaň na její podporu na Crowd Supply. Současně by měly být uvolněny zdrojové kódy. Postavena je na Raspberry Pi Zero W a STM32. Používá inkoustové kazety HP 302.
Byla vydána nová verze 3.28.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 8 zranitelností.
Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.
Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).
Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.
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: