Facebook má nové logo. Poznáte rozdíl?
Byla vydána nová verze 7.2 v Javě napsané aplikace pro komplexní návrh rozmístění nábytku a dalšího vybavení v interiérech Sweet Home 3D. Vyzkoušet lze online verzi. Před dvěma týdny vyšla placená verze pro chytré telefony a tablety (App Store, Google Play).
Zítra 23. září proběhne Maker Faire Mladá Boleslav, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byla vydána beta verze Ubuntu 23.10 s kódovým názvem Mantic Minotaur. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 23.10 mělo vyjít 12. října 2023.
Josef Průša informuje o nových verzích firmwarů pro tiskárny Original Prusa, 5.0.0 pro MK4 a MK3.9 a 5.1.0-alpha1 pro MINI, díky kterým jsou tiskárny mnohem rychlejší.
Mastodon (Wikipedie), svobodná federalizovaná sociální síť, byl vydán ve verzi 4.2. Z novinek je vypíchnuto vylepšené vyhledávání.
Ben Hawkes publikoval pod názvem The WebP 0day analýzu bezpečnostní chyby CVE-2023-4863 v knihovně WebP / libwebp s řadou zajímavých odkazů. Pravděpodobně se jedná o stejnou chybu jako BLASTPASS (CVE-2023-41064 a CVE-2023-41061) v macOS, iOS, iPadOS a watchOS. Zpracování (zobrazení) speciálně připraveného obrázku nebo přílohy vedlo ke spuštění útočníkem připraveného kódu.
Myš je pro kočku: Prohlížeče je dalším dílem ze série článků Myš je pro kočku, kde Edvard Rejthar ukazuje, jak lze počítač ovládat bez myši. Používáte ve webových prohlížečích zkratky Ctrl+(Shift)+Tab, Ctrl+(Shift)+PgDn/PgUp, F6, (Shift)+Alt+Enter nebo F7?
Vývojáři mobilní Datovky prosí o pomoc s testováním beta verze mobilní Datovky s novým grafickým rozhraním, podporou pro tmavý režim a podporou pro VoDZ. Aplikace je zatím dostupná pouze pro zařízení Android a je umístěna v samostatném instalačním kanále Datovka Beta. Tento kanál slouží pro testovaní nové funkcionality a grafického uživatelského rozhraní. Datovka Beta se instaluje jako samostatná aplikace s vlastními daty, která
… více »Harlequin byl vydán ve verzi 1.0.0. Jedná se o TUI (Text User Interface) IDE (Integrated Development Environment) k systému pro správu SQL OLAP databází DuckDB.
Dobrý den, jelikož Bash není moje silná stránka obracím se na Vás o pomoc. Mám script, ze kterého získávám parametry pomocí getopts(). A vůbec si nevím rady jak oštřit to, že když uživatel zadná špatný parametr či jakýkoli nesmysl, aby mu script vrátil chybové hlášeí. Prosím o pomoc, přikádám můj "scriptík".
while getopts "a:b:c:d:e:" PARAMETR;
do
case $PARAMETR in
e) echo "ahoj" ;;
w) echo "cau" ;;
\?) echo "hlaseni"; exit 1 ;;
*) echo "hlaseni"; exit 1 ;;
esac
done
Řešení dotazu:
[ $OPTIND -le $# ] && echo "zasek na parametru $OPTIND - ${!OPTIND}"
seen_a= seen_b= ... while getopts... ... a) seen_a=yes; ...;; b) seen_b=yes; ...;; ... esac ... if test -n "$seen_a" -a -n "$seen_b"; then echo "At most one of -a and -b can be given" 1>&2 exit 1 fi
echo "${${#}}"
Případně:
echo ${!#}
nebo:
args=("$@") echo "${args[$(($#-1))]}"
shift $(($#-1)) echo $1
Problém je v tomto případě rozdělen na dvě nezávislé části:
To může značně zpřehlednit kód. Důležité je, že v cyklu pro zpracování argumentů jen nastavuješ proměné, ale nevykonáváš zatím žádnou akci, právě proto si můžeš dovolit test kolize až za tímto cyklem.
Ale lze to řešit i jinak, záleží na konkrétním návrhu logiky argumentů příkazové řádky. Např. pokud nechci společně použít argumenty -a
, -b
je zbytečné ukládat nastavení těchto argumentů do dvou proměných, ale stačí jedna proměná, která implicitně neobsahuje nic a před přiřazením hodnoty a nebo b se testuje zda-li je prázdná a teprve poté se provede přiřazení. Pokud prázdná není, tak může uživatel okamžitě dostat chybové hlášení, že nesmí používat společně argumenty -a
, -b
a program se může ukončit aniž by se pokračovalo v dalším zpracovávání argumentů.
BTW: Pokud píšeš něco rozsáhlejšího, tak doporučuji zvážit použití Pythonu. Psát větší projekty v Bashi je cesta do pekel. A ani na ty menší se nevyplatí, pokud pro to nemáš nějaký opravdu pádný důvod.
Tiskni
Sdílej: