Byla vydána nová verze 4.8.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 142 (pdf) a HackSpace 79 (pdf).
Qtractor (Wikipedie) dospěl do verze 1.0.0. Jedná se o Audio/MIDI vícestopý sekvencer.
Byl vydán svobodný kancelářský balík OnlyOffice Docs 8.1. Vedle četných oprav přináší několik funkcí včetně podpory editace textu v PDF a vytváření formulářů v PDF.
Daniel Stenberg, autor nástroje curl, z databáze SteamDB zjistil, že aktuálně 22 734 her na Steamu používá curl.
Společnost Anthropic vydala Claude 3.5 Sonnet, tj. novou verzi své umělé inteligence Claude (Wikipedie). Videoukázky na YouTube. S Claude 3, stejně jak s GPT-3.5, Llama 3 a Mixtral, si lze pokecat bez přihlašování na DuckDuckGo AI Chat.
Byla vydána nová stabilní verze 6.8 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 126. Přehled novinek i s náhledy v příspěvku na blogu a na YouTube. Vypíchnuta jsou vylepšení v integrovaném poštovním klientu.
Příspěvek Aukce domén – měsíc po spuštění na blogu CZ.NIC shrnuje první měsíc provozu Aukce domén .CZ. Aukcemi prošlo celkem 18 174 domén, z toho na 742 z nich byl učiněn alespoň 1 příhoz. Nejdražší aukcí byla na doménu virtualnisidlo.cz s cenou 95 001 Kč, která však nebyla včas uhrazena. Nejdražší aukcí, která byla vydražena i zaplacena je praguecityline.cz s cenovkou 55 600 Kč.
Před 40 lety, 19. června 1984, Bob Scheifler představil první verzi okenního systému X (X Window System). Vycházela z okenního systému W (W Window System).
Desktopové prostředí MATE bylo vydáno ve verzi 1.28. V gitových repozitářích je sice už od února, ale oznámení vydání se na webu objevilo s několikaměsíčním zpožděním (únorové datum zveřejnění je nepravdivé). Jde o první velké vydání od roku 2021. Uživatelsky nejvýznamnější pokrok je v podpoře Waylandu.
# cat skript.sh
#!/bin/bash SNAPSHOT="fotky" lvcreate -s -L 2G -n $SNAPSHOT-snap /dev/vg01/$SNAPSHOTMám tady ukázku osekaného skriptíku a můj dotaz spočívá v tom, zda a jak se dá udělat, abych v něm nemusel natvrdo psát proměnnou, ale skript bych spustil např.
./skript.sh fotky
a všechny proměnné SNAPSHOT by byly fotky
. Pak bych zadal např. ./skript.sh root
a všechny proměnné SNAPSHOT by byly root
atd. Snad je to pochopitelné. Moc díky za nakopnutí:)
#!/bin/bash lvcreate -s -L 2G -n $1-snap /dev/vg01/$1
./skript.sh foo bar #!/bin/bash echo "Skript $0 a parametry $1 a $2."
Pro pevný počet argumentů:
#!/bin/bash
ARG_COUNT=$#
SCRIPT_NAME=$0
ARG_1=$1
ARG_2=$2
ARG_3=$3
echo "NAME - $SCRIPT_NAME, Arguments - $ARG_COUNT, 1. argument - $ARG_1, 2. argument - $ARG_2, 3. argument - $ARG_3"
Výstup:
pi@raspberrypi:~ $ /home/pi/args prvni druhy treti
NAME - /home/pi/args, Arguments - 3, 1. argument - prvni, 2. argument - druhy, 3. argument - treti
Další možností může být naplnění pole argumenty:
#!/bin/bash
declare -a ARG_ARRAY=(`echo $@`);
for i in "${ARG_ARRAY[@]}"
do echo $i
done
Výstup:
pi@raspberrypi:~ $ /home/pi/arguments jedna dva tri ctyri pet
jedna
dva
tri
ctyri
pet
pi@raspberrypi:~ $
#!/bin/bash
declare -a ARG_ARRAY=(`echo $@`);
for i in "${ARG_ARRAY[@]}"
do
lvcreate -s -L 2G -n $i-snap /dev/vg01/$i
done
Pak si dáš jen ./skript.sh fotky root dalsi dalsi
a vytvoří ti to všechno automaticky naráz.
Jakou výhodu získáte tím polem oproti obvyklému
while [ $# -gt 0 ]; do lvcreate -s -L 2G -n "${1}-snap" "/dev/vg01/$1" shift done
nebo
for v in "$@"; do lvcreate -s -L 2G -n "${v}-snap" "/dev/vg01/$v" done
?
Slovíčkaření. Když tomu Bash říká Arrays, nevidím důvod nazývat to seznam, najdu tam, co neznám nebo jakkoliv jinak.
Ne že bych čekal ve jménech zařízení mezery, ale proč je nepodporovat, když to jde? A vůbec, je lepší mít vždycky všechno bezpečně oescapované, pokud se nějak pracuje se vstupem z příkazové řádky.
#!/bin/bash ARGS=("$0" "$@") for idx in "${!ARGS[@]}"; do echo "Argument číslo ${idx}: ${ARGS[idx]}" doneTohle^^^ taky názorně ukazuje konvenci kolem
argv[0]
a některé detaily chování "$@"
. Příklad:
$ /tmp/zee první 'druhý s mezerami' 't ř e t í' čtvrtý Argument číslo 0: /tmp/zee Argument číslo 1: první Argument číslo 2: druhý s mezerami Argument číslo 3: t ř e t í Argument číslo 4: čtvrtý
OPTS1=(-copyprog "rsync -aX --rsh='ssh -p 22 -i /root/.ssh/unison/id_rsa -c arcfour' --inplace" -copyprogrest "rsync -aX --rsh='ssh -p 22 -i /root/.ssh/unison/id_rsa -c arcfour' --partial --inplace" -copythreshold 0 -copyquoterem true ) unison "${OPTS1[@]}" "${OPTS2[@]}" .....
echo
je tam zbytečně, viz shellcheck. Stačí
#!/bin/bash declare -a ARG_ARRAY=($@) for i in "${ARG_ARRAY[@]}" do lvcreate -s -L 2G -n "$i-snap" "/dev/vg01/$i" done
declare -a ARG_ARRAY=("$@")
Tiskni
Sdílej: