Papež Lev XIV. ve své první encyklice Magnifica Humanitas (Skvělé lidství), která se věnuje umělé inteligenci (AI), varoval před dezinformacemi, které AI manipulací s obsahem vytváří. Moc mají podle něj sociální sítě ovládané hrstkou soukromníků. Upozornil také roli digitálních platforem v obchodování s lidmi, které podle něj musí být uznáno jako současná forma otroctví. Papež se také poprvé omluvil za roli, kterou Vatikán sehrál při legitimizaci otroctví, a za to, že jej po staletí neodsoudil.
Český telekomunikační úřad zveřejnil Výroční zprávu za rok 2025 (pdf), která shrnuje jeho hlavní aktivity v oblasti regulace elektronických komunikací, poštovních služeb, digitálních služeb a přípravy na dohled nad umělou inteligencí. Součástí zprávy jsou také data o vývoji trhu, včetně pokračujícího růstu spotřeby mobilních dat a rozšiřování sítí nové generace. Celkový objem přenesených mobilních dat dosáhl v roce 2025 přibližně
… více »Tým sdružení CZ.NIC vyvíjející routovacího daemona BIRD oznámil vydání nových verzí 3.3.0 a 2.19.0. Ty přinášejí podporu pro EVPN/VXLAN a automatizaci BGP na základě router advertisementů. Více informací je k dispozici v archivu uživatelského mailing-listu.
Open source software pro úpravu digitálních fotografií LightZone (Wikipedie) byl vydán v nové verzi 5.0.0. LightZone je dnes k dispozici pod licencí BSD. Původně se jednalo o proprietární software vyvíjený společností Light Crafts. Ta v prosinci 2012 souhlasila s uvolněním zdrojových kódů jako open source [Wayback Machine].
Byla vydána verze 0.84 telnet a ssh klienta PuTTY (Wikipedie). Podrobnosti v přehledu nových vlastností a oprav chyb a Change Logu.
Microsoft představil Azure Linux 4.0 a Azure Container Linux. Na konferenci Open Source Summit North America 2026 organizované konsorciem Linux Foundation a sponzorované také Microsoftem. Azure Linux 4.0 vychází z Fedora Linuxu. Azure Container Linux je založen na projektu Flatcar. Azure Linux (GitHub, Wikipedie) byl původně znám jako CBL-Mariner.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 165 (pdf).
Byla vydána verze 9.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.
Byla vydána nová stabilní verze 8.0 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 148. Přehled novinek i s náhledy v příspěvku na blogu.
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
nic
Vzdej 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 zero
Cize 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: