Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.
OpenSearch (Wikipedie) byl vydán ve verzi 3.0. Podrobnosti v poznámkách k vydání. Jedná se o fork projektů Elasticsearch a Kibana.
PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.
Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.
Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.
Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.
sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.
Fedora se stala oficiální distribucí WSL (Windows Subsystem for Linux).
Společnost IBM představila server IBM LinuxONE Emperor 5 poháněný procesorem IBM Telum II.
if [ ${MYARRAY} ] then echo "Pole je plne" else echo "Pole je prázdné" fi
Řešení dotazu:
test ${#MYARRAY[*]} = 0
if [ ${#MYARRAY[*]} = 0 ] then echo "Pole je prázdné" else echo "Pole je plné" fi
${#MYARRAY[*]}
vrací počet prvků pole.
MYARRAY= echo "Počet prvků v poli: ${#MYARRAY[*]}" for((i=0;i<${#MYARRAY[*]};i++)) { echo "${#MYARRAY[i]}" }
Počet prvků v poli: 1 0
unset MYARRAY echo "Počet prvků v poli: ${#MYARRAY[*]}" for((i=0;i<${#MYARRAY[*]};i++)) { echo "${#MYARRAY[i]}" }
Počet prvků v poli: 0
A=(Ignorance strikes back)?
$ A=('') $ echo ${#A[*]} 1 $ test -z "${A[*]}" && echo nic || echo nieco nicVzdej to už
''
.
Prázdný řetězec je plnohodnotný prvek pole, i když při výpisu na váš terminál se shodou okolností nevypíše žádný znak :)
Je to jako prázdná krabice od bot. Někoho sice zajímají výhradně ty boty, protože je třeba obuvník, tak všude vidí jen boty boty boty, ale skladníka zajímají i prázdné krabice.
Pokud mi někdo předal prázdnou krabici od bot bez tří mega (pole s prázdným řetězcem), je to zcela jiná situace, než kdyby žádná předávka vůbec neproběhla (prázdné pole).
const char p[] = {0, 0};
#!/bin/bash A=('' '6*9' '' '42') #A=('') echo "Pole A obsahuje: ${#A[@]} položek" for (( i=0 ; i < ${#A[@]} ; i++ )) do echo "Prvek $i má hodnotu: '${A[$i]}'" done
man 1 test
)-n STRING the length of STRING is nonzero STRING equivalent to -n STRING -z STRING the length of STRING is zeroCize moznost je
if [ -n "${MYARRAY}" ]
, alebo if [ -z "${MYARRAY}" ]
a potom spravne then/else.$ MYARRAY=a $ if [ -n "${MYARRAY}" ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi Pole je plne $ MYARRAY= $ if [ -n "${MYARRAY}" ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi Pole je prázdné $Pre zjednodusenie sa to da
-n
uplne vypustit, ale potom by menej znalym uz nemuselo byt jasne o co ide :)
$ MYARRAY=a $ if [ "${MYARRAY}" ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi Pole je plne $ MYARRAY= $ if [ "${MYARRAY}" ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi Pole je prázdné $a mala drobnost na zaver. Tie uvodzovky tam maju svoje miesto ... kedze:
$ MYARRAY="a b" $ if [ -n ${MYARRAY} ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi -bash: [: a: binary operator expected Pole je prázdné $ if [ -n "${MYARRAY}" ]; then echo "Pole je plne"; else echo "Pole je prázdné"; fi Pole je plne $Bez uvodzvoviek shell cely string najprv rozdeli podla
$IFS
a na zaklade toho dosadi ako argumenty. Inak povedane v provom priklade vidi test "-n a b
" a to nie je co ocakava ...
a
expanduje ${a}
na obsah prvního prvku. Takže uvedné testy nefungují ani pro výše uvedený příkad
http://www.abclinuxu.cz/poradna/linux/show/363461#7 a viz také příspěvek od Ashe http://www.abclinuxu.cz/poradna/linux/show/363461#5
Obecně stringovými testy prostě neodlišíš nenastavené prvky od prázdných:
a=('')vytvoří pole o jednom prázdném prvku, což není totéž jako prázdné pole, které vytvoří například
unset a declare -a a
$ A=(" ") $ test -z "${A[*]}" && echo nic || echo nieco nieco $ A=(' ') $ test -z "${A[*]}" && echo nic || echo nieco nieco $ A=('') $ test -z "${A[*]}" && echo nic || echo nieco nic $ A=("") $ test -z "${A[*]}" && echo nic || echo nieco nic
a=(' ')i
a=(" ")když rozdíl je pouze v zápisu, obsah proměnné bude identický.
Tiskni
Sdílej: