Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »
Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
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: