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 26.8. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 23.1.0, tj. první stabilní verze z nové řady 23.1.x, překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, LLD, Extra Clang Tools, Libc++, Polly a Flang.
Google Chrome 152 byl prohlášen za stabilní. Nejnovější stabilní verze 152.0.7977.64 přináší řadu novinek. Podrobný přehled v poznámkách k vydání. Opraveno bylo 327 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Před 35 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
Apple představil čipy M6 a M5 Ultra, Mac mini s M6 nebo M5 Pro a Mac Studio s M5 Max nebo M5 Ultra. Fedora Asahi Remix zatím podporuje jenom M1 a M2.
Firefox 157 přinese zapnutou podporu rastrového grafického formátu JPEG XL. Založena je na v Rustu napsané implementaci jxl-rs používané i v Chrome a Chromiu.
Vanilla OS 3 „Reunion“ byl vydán. Tato na Debianu „Sid“ založená desktopová distribuce s transakčními aktualizacemi „neměnného“ základního systému (ABRoot) nově podporuje architekturu arm64 (vedle x86-64), podporuje reprodukovatelné sestavení většiny balíčků a vylepšuje systémové nástroje. Vlastní meta-správce balíčků APX nyní používá Distrobox v2 a je dostupný i pro jiné distribuce.
Řemínky pro Apple Watch, bezdrátová sluchátka nebo nabíjecí adaptéry. Takovou nabídku našli v uplynulých dnech příslušníci Celního úřadu v Liberci při kontrole kamenného obchodu na Náchodsku. Celkem zde zadrželi 3 035 kusů zboží podezřelého z porušování práv duševního vlastnictví. Pokud by se jednalo o originální výrobky, jejich hodnota by podle odhadu přesáhla 10,8 milionu korun.
Byla vydána verze 31.1 textového editoru GNU Emacs. Podrobný přehled novinek v souboru NEWS.
Webový prohlížeč Waterfox (Wikipedie), fork Firefoxu, byl vydán ve verzi 6.7.0. Postaven je na jádru Gecko ESR 153.
"If bash is invoked with the name sh, it tries to mimic the startup behavior of historical versions of sh as closely as possible, while conforming to the POSIX standard as well."
Zdar MaxKaždopádně, jaký smysl má zápis "V=1 f" kromě testování syntaxe různých interpretů?
Hodně často se to používá např. v konstrukcích typu
... | LC_COLLATE=C sort
Obecně v situaci, kdy potřebujete spustit konkrétní příkaz s určitou hodnotou určité proměnné, ale nechcete ji nastavovat (jako exportovanou) v environmentu shellu, okdud by ji zdědily i všechny ostatní příkazy.
To chování dashe (jestli se tak opravdu chová a nebyla to nějaká jiná chyba) je hodně nešťastné a obávám se, že to rozbije hodně skriptů.
Každopádně, jaký smysl má zápis "V=1 f" kromě testování syntaxe různých interpretů?Tenhle zápis mi přijde jako naprosto běžná věc, například
CC=/nekde/nejaky/cc make . Něbo máš na mysli specificky při používání shellových funkcí (ie. ne programů)? V takovém případě to je, pravda, asi trochu neobvyklé...
j,
na vetsinu poslednich veci se neprislo nahodou ale celkem dost usilovnou praci velmi dobre placenych lidi
a v tomto pripade se jedna ciste jen o lokalni definici promene pro konkretni volani funkce f bez zasahu do env..
takze bash se narozdil od dashe chova logicky
co je divneho na tom, ze si to kazdy shell implementuje po svemSmyslem konstrukce:
PROMĚNNÁ=hodnota nějaký-příkaz;je spustit
nějaký-příkaz s danou hodnotou proměnné prostředí – zatímco jiné/následující příkazy chci spouštět bez této proměnné resp. s její původní hodnotou – jinak bych totiž napsal:
PROMĚNNÁ=hodnota; nějaký-příkaz; nějaký-další-příkaz;
Mně tedy chování dashe vůbec logické nepřipadá, protože hlavně vůbec není konzistentní. V okamžiku, kdy se konstrukce
var=val cmd
chová diametrálně odlišně podle toho, jestli je cmd (externí) příkaz nebo funkce, stačí nahradit příkaz vlastním wrapperem (což je běžný postup) a skript se rozbije. Tohle prostě autoři dashe nedomysleli.
"funkce" (ono je to spíš makro)
Shellová funkce se ani zdaleka nechová jako makro.
podporují levý argument a jiné built-in programy argument na levé straně nepodporují
Tak tady se nechytám. Co myslíte termínem levý argument?
Já nevim, jestli bych chtěl měnit změnou parametru prostředí před funkcí chování všech programů použitých uvnitř wrapperu.
Já samozřejmě ano. Když to bude samostatný script, také tu proměnnou dostane do svého environmentu. A funkce je v podstatě takový "embedded script", tedy až na to, že defaultně sdílí environment se zbytkem scriptu.
nehledě na to, že to ani návratovou hodnotu nemá
Opravdu? Tak zkuste spustit tohle
#!/bin/bash
function starts_with_a()
{
if [ "${1#a}" = "$1" ]; then
return 1
else
return 0
fi
}
starts_with_a abc && echo "abc YES"
starts_with_a abc || echo "abc NO"
starts_with_a def && echo "def YES"
starts_with_a def || echo "def NO"
a vysvětlit, proč to vypíše
abc YES def NO
Samozřejmě to, co je uvedeno na levé straně příkazu/programu.
Uff… Tak říkat tomu argument by mne ani ve snu nenapadlo. To přece není žádný argument, ta konstrukce prostě znamená "spusť tenhle příkaz s těmito hodnotami těchto proměnných", nic víc a nic méně. S argumenty to nemá nic společného, příkaz nemá žádnou možnost, jak poznat, jestli jste použil tu jednořádkovou konstrukci nebo jste tu proměnnou prostě a jednoduše nastavil klasickým způsobem (jako exportovanou).
Dokonce -- což se tak často neví -- tam může být nastavení file-deskriptoru (přesměrování), který se ze zvyku a pro lepší čitelnost dává na pravou stranu až na konec.
Snad nechcete přesměrování také říkat argument? Zkuste se zamyslet např. nad tím, proč
wc file wc <file
mají rozdílný výstup (hlavně proč první vypíše jméno souboru a druhý ne).
Však jsem psal, že return vrací (spíš posílá) status do stderr. Já psal ale o návratové hodnotě, která jde dál ke zpracování -- nějaký řetězec. V shellu je to jen o přesměrování stdout. Samozřejmě s přivřením oka to můžeme také nazývat návratovou hodnotou, pokud nám nebude vadit, že ji vrací příkaz jako echo nebo printf.
Je mi líto, ale v tomhle odstavci není pravda skoro nic. Návratová hodnota nemá se stderr nic společného a u funkce funguje v podstatě stejně jako u externího příkazu a stejně se i zpracovává. Návratová hodnota je číslo, žádný řetězec, jak u funkce, tak u externího příkazu. Výstup (standard output) a chybový výstup (standard error) jsou něco úplně jiného.
ls -d [A-Z]*
V bashi vypise i soubory nezacinajici velkym pismenem. Pod zsh to ma ocekavany vysledek. Nevim zda je to zpusobeno locale nebo cim, ale ani nastaveni locale na LC_ALL=C to chovani nezmeni.
Works for me:
mike@unicorn:/tmp/a> ls -d [A-Z]* A b B c C d D mike@unicorn:/tmp/a> LC_ALL=C mike@unicorn:/tmp/a> ls -d [A-Z]* A B C D
[lyco@hubb test]$ LC_ALL=cs_CZ.utf8 [lyco@hubb test]$ ls * a A á Á b B c C č Č [lyco@hubb test]$ ls [A-C]* A á Á b B c C [lyco@hubb test]$ ls [A-Z]* A á Á b B c C č Č [lyco@hubb test]$ LC_ALL=C [lyco@hubb test]$ ls [A-C]* A B C [lyco@hubb test]$ [lyco@hubb test]$ LC_ALL=C ls [A-C]* A B C [lyco@hubb test]$ LC_ALL=cs_CZ.utf8 [lyco@hubb test]$ LC_ALL=C ls [A-C]* A B C b c ''$'\303\201' ''$'\303\241'
Tiskni
Sdílej: