Byla vydána nová verze 1.12.0 dynamického programovacího jazyka Julia (Wikipedie) určeného zejména pro vědecké výpočty. Přehled novinek v příspěvku na blogu a v poznámkách k vydání. Aktualizována byla také dokumentace.
V Redisu byla nalezena a v upstreamu již opravena kritická zranitelnost CVE-2025-49844 s CVSS 10.0 (RCE, vzdálené spouštění kódu).
Ministr a vicepremiér pro digitalizaci Marian Jurečka dnes oznámil, že přijme rezignaci ředitele Digitální a informační agentury Martina Mesršmída, a to k 23. říjnu 2025. Mesršmíd nabídl svou funkci během minulého víkendu, kdy se DIA potýkala s problémy eDokladů, které některým občanům znepříjemnily využití možnosti prokázat se digitální občankou u volebních komisí při volbách do Poslanecké sněmovny.
Společnost Meta představila OpenZL. Jedná se o open source framework pro kompresi dat s ohledem na jejich formát. Zdrojové kódy jsou k dispozici na GitHubu.
Google postupně zpřístupňuje českým uživatelům Režim AI (AI Mode), tj. nový režim vyhledávání založený na umělé inteligenci. Režim AI nabízí pokročilé uvažování, multimodalitu a možnost prozkoumat jakékoliv téma do hloubky pomocí dodatečných dotazů a užitečných odkazů na weby.
Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.
Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.
Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.
Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.
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: