Connor Byrne z USA používal pro přihlašování na svůj iPhone 13 s iOS 18 heslo obsahující háček. Po aktualizaci na iOS 26.4 se už ale do telefonu nepřihlásí. Při přihlašování nelze tento háček zadat. Apple jej prostě odstranil [The Register].
Linus Torvalds vydal jádro Linux 7.0. Podrobný výčet změn je ke zhlédnutí na stránce Kernel Newbies, stručné výběry v LWN (část první, druhá).
Na čem aktuálně pracují vývojáři GNOME? Pravidelný přehled novinek v Týden v GNOME. Vypíchnout lze novou verzi 2026.1 přehrávače hudby Amberol (Flathub).
Byla vydána verze 12.0 s kódovým jménem Ecne linuxové distribuce Trisquel GNU/Linux. Založena je na Ubuntu 24.04 LTS a podporována bude do roku 2029. Trisquel patří mezi svobodné distribuce doporučované Nadací pro svobodný software (FSF).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 9. Přehled novinek v příspěvku na blogu.
Libre Graphics Meeting 2026, tj. čtyřdenní konference a setkání vývojářů a uživatelů svobodných a otevřených grafických softwarů, proběhne od 22. do 25. dubna v Norimberku. Dění lze sledovat na Mastodonu.
Vývojář Alexandre Gomes Gaigalas na GitHubu zveřejnil c89cc.sh, parser a kompilátor jazyka C89 napsaný v pouhém jediném skriptu o přibližně 8000 řádcích čistého bashe (bez dalších externích závislostí), který generuje ELF64 binárky pro x86-64. Jedná se o velmi jednoduchý kompilátor, který nepodporuje direktivy #include a dokonce ani funkci printf (lze použít puts), všechny dostupné deklarace lze nalézt v proměnné _BUILTIN_LIBC na konci skriptu. Skript je volně dostupný pod ISC licencí.
Francouzská vláda oznámila, že v rámci strategie 'digitální suverenity' zahájí 'přechod od systému Windows k počítačům s operačním systémem Linux' (sa sortie de Windows au profit de postes sous système d'exploitation Linux). DINUM (meziresortní ředitelství pro digitální technologie) požádalo ministerstva, aby do podzimu 2026 vypracovaly konkrétní plány nasazení Linuxu. Francie již dříve migrovala části státní správy na otevřená řešení.
Nezisková organizace Electronic Frontier Foundation (EFF) hájící občanské svobody v digitálním světě po téměř 20 letech opouští platformu X (dříve Twitter). Na platformách Bluesky, Mastodon, LinkedIn, Instagram, TikTok, Facebook, Threads a YouTube zůstává.
Terminálový textový editor GNU nano byl vydán ve verzi 9.0. Vylepšuje chování horizontálního posouvání pohledu na dlouhé řádky a chování některých klávesových zkratek. Více v seznamu změn.
Prosím Vás, jak docílím uložení výstupu příkazu do proměnné v bashi?
Standartně je syntaxe:
c=$(pwr)
echo "Output ${c}"
To tak FUNGUJE!
--------------------------------------------------------------------------
c=$(nc -v -z 192.168.1.222 80)
echo "Output ${c}"
Toto NEFUNGUJE
Ve výstupu mám:
Connection to 192.168.1.222 80 port [tcp/http] succeeded! OutputProměnná "c" je prázdná. Jak prosím uložím příkaz "nc" do proměnné? Všem moc děkuji za pomoc Lukáš
O=$(curl http://192.168.0.1/index.html)
c=$(nc -v -z 127.0.0.1 80 1 2>&1)Pořád mi přijde curl pro daný úkol snadnější, porovnej curl:
# curl www.root.cz <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.root.cz/">here</a>.</p> <hr> <address>Apache/2.4.25 (Debian) OpenSSL/1.0.2l Server at www.root.cz Port 80</address> </body></html>čili:
# curl https://www.root.cz <!DOCTYPE html> <!-- Zdá se, že se zajímáš o náš zdrojový kód... Hledáme posilu do našeho týmu! @erik.dvorak@iinfo.cz --><html id="css" class="js-inactive design-html" lang="cs"> (...)vs nc:
# nc -v -z www.root.cz 80 Connection to www.root.cz 80 port [tcp/http] succeeded!
nc -z), ne poslat HTTP požadavek.
nc -v -z 127.0.0.1 81 && echo OTEVRENY || echo ZAVRENY;
-v.
nazev_promenne=="$(příkaz)" uloží do proměnné standardní výstup (stdout) příkazu. Každý program spuštěný ze shellu má ve výchozím stavu tyto výstupy:
# standardní výstup jde do souboru příkaz >soubor # standardní vstup jde ze souboru příkaz <soubor # standardní výstup příkaz1 jde na standardní vstup příkaz2 příkaz1 | příkaz2Můžete si všimnout toho, že všechny případy se týkají jen standardního vstupu a výstupu. Chybový výstup jde ve výchozím nastavení do terminálu. Pokud ho chcete přesměrovat do souboru, vypadá to takto:
# chybový výstup jde do souboru příkaz 2>souborTa dvojka znamená file descriptor číslo 2, tedy stderr. Podobně můžete nastavit i jiné FD než stdout a stderr, ale to v praxi většinou nepoužijete. Můžete také přesměrovat stderr do stdout tím, že do cílového souboru napíšete
&2 (FD číslo 2)2:
# chybový výstup (fd 2) se sloučí se standardním (fd 1), takže je veškerý výstup na standardním příkaz 2>&1To můžete pak vzít a přesměrovat do souboru nebo jiného příkazu:
# chybový výstup (fd 2) se sloučí se standardním (fd 1), standardní se pak směruje do souboru příkaz 2>&1 >soubor # chybový výstup příkazu 1 (fd 2) se sloučí se standardním příkazu 1 (fd 1), standardní se pak směruje do příkazu 2 (příkaz 2 už má ale opět oba výstupy) příkaz1 2>&1 | příkaz2
nc tuto hlášku vypisuje na standardní chybový výstup, takže je chceme sloučit a to potom uložit do proměnné:
c="$(nc -vz 192.168.1.222 80 2>&1)"
a=$(echo lorem ipsum) b="$(echo lorem ipsum)"Po vyhodnocení
$(…) bash vidí toto:
a=lorem ipsum b="lorem ipsum"První řádek znamená „spusť příkaz „ipsum“ s proměnnou prostředí „a“ nastavenou na „lorem“. Druhý řádek znamená „ulož do proměnné „b“ text „lorem ipsum“. Toto je častý zdroj chyb v bashových programech.
exec je možné použít ke směrování file deskriptorů samotného shellu.
if příkaz1
then
toto se provede pokud příkaz1 uspěl
fi
if příkaz2
then
toto se provede pokud příkaz2 uspěl
else
toto se provede pokud příkaz2 neuspěl
fi
Pokud máte v shellu proměnnou, pište ji do uvozovek. Srovnejte tyto dva zápisy:a=$(echo lorem ipsum) b="$(echo lorem ipsum)"Po vyhodnocení$(…)bash vidí toto:a=lorem ipsum b="lorem ipsum"První řádek znamená „spusť příkaz „ipsum“ s proměnnou prostředí „a“ nastavenou na „lorem“. Druhý řádek znamená „ulož do proměnné „b“ text „lorem ipsum“. Toto je častý zdroj chyb v bashových programech.
Obecně máte pravdu, ale zrovna u přiřazení je to trochu složitější, takže ten váš příklad nefunguje tak, jak tvrdíte:
mike@lion:~> var=$(echo lorem ipsum) mike@lion:~> echo ">$var<" >lorem ipsum<
To hlášení píše nc na chybový výstup, nikoliv na standardní výstup. Proto se objevuje na terminálu a ne v proměnné.
c="$(netcat -v -z 2a02:xxxx:yyyy:2:defb:48ff:fe28:4f42 80 2>&1)"
Takhle^^^ mi to normálně funguje:
$ echo "$c" Connection to 2a02:xxxx:yyyy:2:defb:48ff:fe28:4f42 80 port [tcp/http] succeeded!
Tiskni
Sdílej: