Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.
Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.
Služba Dropbox Sign (původně HelloSign) pro elektronické podepisování smluv byla hacknuta.
Byla vydána nová major verze 8.0 textového editoru GNU nano (Wikipedie). Podrobný přehled novinek a oprav v oznámení v diskusním listu info-nano nebo v souboru ChangeLog na Savannah. Volbou --modernbindings (-/) lze povolit "moderní" klávesové zkratky: ^C kopírování, ^V vložení, ^Z vrácení zpět, … Tato volba je aktivována také pokud binárka s nano nebo link na ni začíná písmenem "e".
Před 60 lety, 1. května 1964, byl představen programovací jazyk BASIC (Beginners' All-purpose Symbolic Instruction Code).
Byla vydána nová verze 12.0 minimalistické linuxové distribuce (JeOS, Just enough Operating System) pro Kodi (dříve XBMC) a multimediálního centra LibreELEC (Libre Embedded Linux Entertainment Center). Jedná se o fork linuxové distribuce OpenELEC (Open Embedded Linux Entertainment Center). LibreELEC 12.0 přichází s Kodi 21.0 "Omega".
Microsoft vydal novou velkou aktualizaci 2404.23 v září 2019 pod licencí SIL Open Font License (OFL) zveřejněné rodiny písma Cascadia Code pro zobrazování textu v emulátorech terminálu a vývojových prostředích.
OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Chtěl jsem si ušetřit práci zpracováním seznamu předaného smyčce a narazil na zajímavý problém. Nějak prapodivně mi funguje echo ve smyčce.
Asi nejlépe to bude demonstrovat na příkladu:
user@stroj:~$ cat osoby.txt ja ty on ona ono user@stroj:~$ for i in $(<osoby.txt); do echo "aa$i" ; done aaja aaty aaon aaona aaono user@stroj:~$ for i in $(<osoby.txt); do echo "$iaa" ; done user@stroj:~$ for i in $(<osoby.txt); do echo "$i aa" ; done aa aa aa aaa aaoNějak se nemůžu zbavit dojmu, že by správně měl výsledek druhé smyčky vypadat takto:
user@stroj:~$ for i in $(<osoby.txt); do echo "$iaa" ; done jaaa tyaa onaa onaaa onoaa user@stroj:~$ for i in $(<osoby.txt); do echo "$i aa" ; done ja aa ty aa on aa ona aaa ono aaProtože když udělám spojení proměnné s řetězcem přímo, tak to vypadá takto..
user@stroj:~$ osoba="nekdo" user@stroj:~$ echo "$osoba jiny" nekdo jinyJe to normální? Nebo dělám někde něco blbě? Nebo mi už hrabe?
Tiskni Sdílej:
"$iaa" je evidentne blbe - promenou iaa tam nemas. Kdyztak "${i}aa". Nevim, proc ti nefunguje "$i aa", to by melo byt v poradku. Mozna zkus nahradit vyraz v for cyklu na `cat soubor` (a nebo jeste lepe pouzit 'while read i'), zda neni problem v tom.
Nevim, proc ti nefunguje "$i aa"
, to by melo byt v poradku.
To je opravdu v pořádku:
mike@unicorn:~/tmp> for i in $(<osoby.txt); do echo "$i aa" ; done ja aa ty aa on aa ona aa ono aa
Problém tazatele bude nejspíš v něčem jiném, co v této ukázce není vidět.
"$i aa"
byl ve skutečnosti CR.
echo "$iaa"
by mělo být takto: echo "${i}aa"
, ne?
Proč záhadného? Záhadné by bylo, kdyby k ní nedošlo. Vyskytne-li se za dolarem písmeno* nebo podtržítko, pak se všechno, co následuje až k prvnímu znaku, který není písmeno*, číslice nebo podtržítko, považuje za název proměnné a výsledkem expanze je hodnota této proměnné. Neexistuje-li, výsledkem expanze je prázdný řetězec.
* anglické abecedy
No v tom pripade skript vlastne perfektne fungoval.
$iaa
, jestli je to promenna $i a text aa, nebo promenna $ia a text "a" nebo promenna "$iaa". Proto se pouzivaji zapisy "${promenna}text", kterym se jasne vymezi, co je promenna.
A ten problem s tim "$i aa" je takovej docela chytacek:) uz jsem se s tim taky setkal:) Je to problem mezi svetem Windows a Unix. Tipuju, ze jsi ten soubor vytvoril na woknech a pak jsi to bez konverze zkousel na linuxu. Cili radky obsahuji:
ja[CR][LF] ty[CR][LF] on[CR][LF] ona[CR][LF] ono[CR][LF]Bash potom do promenny $i nacpe napr. "ja[CR]" a [LF] odmaze a kdyz to pak tisknes, tak se vytiskne $i jako "ja[CR]" a [CR] je carriage return (posun kurzoru na zacatek radky), takze zbytek textu " aa" se napise zase od zacatku radky, proto prepise ten text z promenny $i:) Hezkej chytak, co?:)
Jen tak pro zajímavost, to tvrzení "Tohle plati u vsech jazyku" je přecejenom trochu moc silné.
Existují i jazyky a skripty, kde to funguje jinak. Oba níže uvedené příkazy pro vypsání hodnoty vypíší shodný řetězec. Jaký GNU program čte tuto syntaxi ponechávám na laskavém čtenáři.
a=testa
$(warning testa="$atest")
$(warning testa="$(a)test")