BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.
Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.
V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.
Společnost Jolla na akci s názvem Jolla Love Day 2 - The Jolla comeback představila telefon se Sailfish OS 5.0 Jolla Community Phone (ve spolupráci se společností Reeder) a počítač Jolla Mind2 Community Edition AI Computer.
LibreOffice 24.8 bude vydán jako finální v srpnu 2024, přičemž LibreOffice 24.8 Alpha1 je první předběžnou verzí od začátku vývoje verze 24.8 v prosinci 2023. Od té doby bylo do úložiště kódu odesláno 4448 commitů a více než 667 chyb bylo v Bugzille nastaveno jako opravené. Nové funkce obsažené v této verzi LibreOffice najdete v poznámkách k vydání.
Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 141 (pdf) a HackSpace 78 (pdf).
Byla vydána verze 2.0.0 programovacího jazyka Kotlin (Wikipedie, GitHub). Oficiálně bude představena ve čtvrtek na konferenci KotlinConf 2024 v Kodani. Livestream bude možné sledovat na YouTube.
Byla vydána nová major verze 27.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Přehled novinek v příspěvku na blogu.
myArray=("cat" "dog" "mouse" "frog") A=("a" "b" "c") A+=("d") ls *.mp3 | sort -R | while read i; do A+=( "$i" ); echo $i done for i in ${A[@]}; do echo "--- $i" doneVypise to len a b c d, nic z toho while cyklu.
Řešení dotazu:
for i in $(ls *.mp3 | sort -R); do A+=("$i") done
myArray=("cat" "dog" "mouse" "frog") A=("a" "b" "c") A+=("d") while read i; do A+=( "$i" ); echo $i done < <(ls *.mp3 | sort -R) for i in "${A[@]}"; do echo "--- $i" done
#!/bin/bash clear A=() while read i; do A+=( "$i" ); done < <(ls *.mp3 | sort -R) for i in "${A[@]}"; do echo "$i" mplayer -really-quiet "$i" 2>/dev/null done
while
není „podprogram“. (Existuje taky „nadprogram“?) Problém není while
, nýbrž dýmka. Bez dýmky se dá z while
přistupovat k proměnným.
Mimochodem: Nikdy neparsuj výstup z ls
.
mp3s=() while IFS= read -r mp3; do mp3s+=("$mp3") done < <(for mp3 in *.mp3; do printf '%s\n' "$mp3" done | shuf) for i in "${!mp3s[@]}"; do printf '%u --- %s\n' "$i" "${mp3s[i]}" done
./a.sh: line 4: syntax error near unexpected token `(' ./a.sh: line 4: `done << (for mp3 in *.mp3; do'GNU bash, version 5.1.16(1)
Kde přesně jsem napsal „<< (
“? Nikde to v mém kódu nevidím.
Doporučuji Copy&Paste; pomáhá to.
Pokud nemáš k dipozici lepší formát, tak bych ty prvky oddělil nulovým bajtem:
while read -d '' i; do A+=("$i"); done < <(find -maxdepth 1 -type f -name '*.mp3' -print0 | sort -zR)
Protože v názvu souboru může být víceméně libovolná změť bajtů kromě nulového bajtu (mj. aby to mohl být céčkovský řetězec) a lomítka (protože to je oddělovač v cestě k souboru). Tzn. kromě mezer, uvozovek a apostrofů tam můžou být i znaky konce řádku. Což dokáže zavařit např. i bash-completion:
$ touch "ko kos" $ ls -1 'ko'$'\n''kos' $ rm ko<TAB> ko kos
Tiskni Sdílej: