Alex Ellis upozornil 15. března, že firma Docker se chystala zrušit bezplatný hosting open-source projektů na Docker Hubu. Po vlně odporu se představitelé firmy omluvili a posléze byl původní záměr odvolán.
Ve věku 94 let zemřel Gordon Moore, mj. spoluzakladatel společnosti Intel a autor Moorova zákona.
Mercurial (Wikipedie), software pro SCM (Source Code Management), byl vydán ve verzi 6.4. Přehled novinek v poznámkách k vydání. Ve dnech 5. až 7. dubna proběhne konference Mercurial Paris.
Byly rozdány Ceny Velkého bratra (Big Brother Awards) za rok 2022 pro největší slídily pořádané nevládní organizací Iuridicum Remedium. Dlouhodobý slídil: Microsoft. Firemní slídil: Seznam. Úřední slídil: Nejvyšší správní soud. Výrok Velkého bratra: Marian Jurečka. Pozitivní cena: NoLog.
Byla představena online vzdělávací platforma Ada Computer Science pro učitele, studenty a kohokoli, kdo se zajímá o informatiku. Stojí za ní Raspberry Pi Foundation a Univerzita v Cambridgi.
GitHub má nový RSA SSH klíč. Předchozí soukromý klíč byl krátce vystaven na GitHubu.
Společnost Framework Computer představila (YouTube) nové modulární notebooky: Laptop 13 s Intel Core nebo AMD Ryzen a Laptop 16 (YouTube).
Bylo vydáno Ubuntu 20.04.6 LTS, tj. šesté opravné vydání Ubuntu 20.04 LTS s kódovým názvem Focal Fossa. Přehled novinek v poznámkách k vydání a v přehledu změn.
Připojit neznámý USB flash disk do počítače může být nebezpečné. Dokonce může jít i o život. Někdo rozeslal ekvádorským novinářům USB flash disky, které po připojení do počítače explodují [BBC, Twitter].
Byla vydána nová verze 7.4 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 v informačním videu.
script -A ARG -B ARG [ -a ARG ] [ -b ARG ] [ -c ARG ] ] [ -C ARG [ -a ARG ] [ -d ARG ARG ARG ] [ -c ARG ] -D [ ARG ]Poradi sekci je pevne dano takto: -A -B -C -D, pricemz -A a -D jsou povinne, -D ma parametr nepovinny Sekce: kazda ze sekci -B -C muze ale nemusi mit dalsi specifikovane parametry. pricemz pro -B mame k dispozici napriklad -a -b -c parametry a pro sekci -C mame -a -d a -c, pricemz -a a -c maji v sekci -C jiny vyznam nez v sekci -B (uff). Tak a ted mi nekdo reknete, jak to v BASHi parsovat tak, abych z toho dostal hodnoty a) pro -A -B -C a -D b) v jednotlivych sekcich i hodnoty jejich prepinacu -a -b -c atd... Brr. Na tohleto mi asi nikdo neodpovi.
state=A while true; do case $state in A) if test "$1" != -A; then echo Expected -A break fi if test -z "$2"; then echo Expected -A argument break fi echo Section A, argument: "$2" state=B shift 2 ;; B) if test "$1" != -B; then echo Expected -B break fi if test -z "$2"; then echo Expected -B argument break fi echo Section B, argument: "$2" state=Barg shift 2 ;; Barg) case "$1" in -a) if test -z "$2"; then echo Expected -a argument break fi echo Section B, argument -a: "$2" shift 2 ;; -b) if test -z "$2"; then echo Expected -b argument break fi echo Section B, argument -b: "$2" shift 2 ;; -c) if test -z "$2"; then echo Expected -c argument break fi echo Section B, argument -c: "$2" shift 2 ;; *) state=C ;; esac ;; C) case "$1" in -C) if test -z "$2"; then echo Expected -C argument break fi echo Section C, argument: "$2" state=Carg shift 2 ;; *) state=D ;; esac ;; Carg) case "$1" in -a) if test -z "$2"; then echo Expected -a argument break fi echo Section B, argument -a: "$2" shift 2 ;; -d) if test -z "$2" -o -z "$3" -o -z "$4"; then echo Expected three -d arguments break fi echo Section C, argument -d: "$2" echo Section C, argument -d: "$3" echo Section C, argument -d: "$3" shift 4 ;; -c) if test -z "$2"; then echo Expected -c argument break fi echo Section C, argument -c: "$2" shift 2 ;; *) state=D ;; esac ;; D) if test "$1" != -D; then echo Expected -D break fi if test -n "$2"; then echo Section D, argument: "$2" shift 2 else echo Section D, no argument shift fi state=End ;; End) break ;; *) echo Internal error, state=$state break ;; esac done if test "$state" != End; then echo Parsing failed in state $state fiPřičemž to v jednotlivých sekcích bere příslušené podoptiony i vícekrát, což lze opravit, ale bude to ještě delší...
DEF_OPTS="A:1+a:3+b:2+c:0 B:2+a:3+b:0+c:1 C:1 D"by znamenalo, ze pokud by na prikazovem radku byly parametry
-A FOO -a 1 2 3 -b aaa bbb -c -B XX YY -a 3 2 1 -c -C BAR -Dtak bysme ziskali nasledujici promenne:
ARG_A="FOO" ARG_A_a[0]="1" ARG_A_a[1]="2" ARG_A_a[2]="3" ARG_A_b[0]="aaa" ARG_A_b[1]="bbb" ARC_A_c=1 ARG_B[0]="XX" ARG_B[1]="YY" ARG_B_a[0]="3" ARG_B_a[1]="2" ARG_B_a[2]="1" ARG_B_c=1 ARG_C="BAR" ARG_D=1Naproti tomu, kdyz by nektere byly vynechany, napr. takto:
-A FOO -a 1 2 3 -b aaa bbb -c -B XX YYtak by se nastavily pouze prislusne promenne a ostatni by neexistovaly.
ARG_A="FOO" ARG_A_a[0]="1" ARG_A_a[1]="2" ARG_A_a[2]="3" ARG_A_b[0]="aaa" ARG_A_b[1]="bbb" ARC_A_c=1 ARG_B[0]="XX" ARG_B[1]="YY"Znamenko "+" v DEF_OPTS by melo vyznam prirazeni k sekci, takze pokud by nekdo psal:
-a 1 2 3 -b aaa bbbtak by se se zlou potazal, a funkce by zkolabovala s chybou, ze ocekava nejdriv nejake to -A. Hm, tak to je shruba moje predstava. Jo jo, zda se ze opravdu fantaziruju... :)
DEF_OPTS="A+a+b+c B+a+b+c C D a"Tim by se to dost zjednodusilo:
-A FOO -a "1 2 3" -b "aaa bbb" -c -B "XX YY" -a "3 2 1" -c -C BAR -DTakze bysme meli:
ARG_A=FOO ARG_A_a=1 2 3 ARG_A_b="aaa bbb" ARG_A_c= # prazdna, ale definovana (lze to nejake testovat?) ARG_B=XX YY ARG_B_a=3 2 1 ARG_B_c= # prazdna, ale definovana ARG_C=BAR ARG_D= # opet prazdna, ale definovanaTak a tohle by snad uz mohlo jit docela snadno. Nebo ne? Take z toho plyne, jak vidno, ze napriklad -a tam mame hned 2x, v sekcich -A a -B. Vyhodou by prave melo byt, ze v kazdem pripade bychom mohli mit vyznam parametru -a jiny, coz je presne to, co aktualne potrebuji. :)
/bin/cat >17passwd.sh <<\EOF #!/bin/bash # vypise 1 a 7 zaznam z /etc/passwd [ -z $1 ] && exit 1 DATA=$(<$1) DATA=${DATA// /|} # rozdelime data na zaznamy/radky IFS="|" for RECORD in $DATA; do while IFS=":" read A B C D E F G; do echo $A $G done <<< $RECORD done exit 0 EOF chmod +x 17passwd.sh ./17passwd.sh /etc/passwdJenze to mam vsechno pevne dano. Jak ale parsovat promenlive zaznamy, kdyz znam pouze oddelovace?
Tiskni
Sdílej: