Programovací jazyk Python byl vydán v nové stabilní verzi 3.12.0. Podrobný přehled novinek v Changelogu.
Linux ve Scratchi. Ne Linux v linuxové distribuci Linux From Scratch, ale Linux bežící v emulátoru procesoru RISC-V ve vizuálním programovacím jazyce Scratch.
Dnes ve 12 hodin začal další ročník CTF (Capture the Flag) soutěže The Catch: "Tentokrát nás kolegové z Forenzní laboratoře zavedou na loď plnou sofistikovaných síťových technologiích, kde soutěžící budou muset zvládnout náročné úkoly. Loď nese jméno našeho skvělého kolegy Josefa Vericha – síťového guru. Tradičně se soutěž koná v říjnu – měsíci kybernetické bezpečnosti."
Konference LinuxDays 2023 proběhne již tento víkend 7. a 8. října v prostorách Fakulty informačních technologií Českého vysokého učení v Praze (FIT ČVUT). Na programu je spousta zajímavých přednášek a workshopů.
Netflix v pátek 29. září odeslal poslední film na DVD (YouTube). Společnost dnes známá jako streamovací služba začala před 25 lety jako půjčovna filmů na DVD. Zákazník si DVD objednal na webových stránkách, odesláno mu ale bylo klasickou poštou. Po zhlédnutí jej vložil do obálky a poslal zpět.
Zero Day Initiative zveřejnila informace o 6 bezpečnostních chybách (1, 2, 3, 4, 5, 6) v MTA Exim. Nejvážnější z nich CVE-2023-42115 má CVSS 9.8. Na opravě chyb se pracuje.
Knihovna libvpx byla vydána ve verzi 1.13.1. Řešena je kritická bezpečnostní chyba CVE-2023-5217 (heap buffer overflow in vp8 encoding). Chyba je již opravena také v Chrome / Chromium 117.0.5938.132 a Firefoxu 118.0.1.
Balíček kmod s nástroji pro práci s linuxovými moduly byl vydán ve verzi 31. Nově umí modprobe zavést modul nacházející se v libovolném adresáři (# modprobe ./drivers/gpu/drm/i915/i915.ko).
Adventura Trüberbrook je na portále GOG.com zdarma, akce trvá do 2. října.
Sound Open Firmware, projekt Linux Foundation, open source audio DSP firmware a SDK, byl vydán ve verzi 2.7.0. Z novinek lze vypíchnout podporu platformy AMD Van Gogh.
Chtel bych vedet, jak se to dela spravne. Procetl jsem par Bash Programming Howtos, ale nejak jsem nenasel odpoved.
Chci dosahnout aby mi funkce vratila hodnotu.
Vetsinou jsou vsude priklady, jak vratit ciselnou hodnotu, ale to nepracuje na string.
Zajima me tedy, jak vratit string/character hodnotu z funkce a jestli je to dobra practice?
Zda se vam, ze to delam spravne nebo ne:
#!/bin/bash f_change () { local changedWord="" echo -e "give me word: " read changedWord echo $changedWord eval $1=$changedWord } test="super" echo -e "var before: $test" f_change test echo -e "Returned from function: $test"
eval…
napište:
test "$1" = "$changedWord"Návratová hodnota funkce či jiného příkazu se ukládá do proměnné
$?
, můžete ji přidat do posledního výpisu. Pravdivost je trochu neobvykle reprezentována hodnotou 0
a nepravdivost 1
. Je tomu tak proto, že nula je návratovým kódem příkazů provedených úspěšně, zatímto nenulové hodnoty značí nesplnění úkonu, chybu.
Samozrejme je to zjednoduseny priklad. Jen me zajima, jak pasnout string a return string. Protoze u ciselnych hodnot se pouziva return, ale to na string nejak nefungovalo.
Jo jeste bych se chtel zeptat, proc "test". Jakou to ma funkci. Kdyz me odkaze na cteni, tak je to ok. Nic takoveho jsem na webu nenasel. Hledal jsem "bash programming function".
Mozna jeste jaky je rozdil v eval a test v tomto pripade. Vsechny ukazky scriptu co jsem nasel uvadely jen eval.
To je proto, že jsem si neuvědomil, že chcete, aby funkce vracela řetězec. Po té mnou navrhované změně by funkce porovnávala zadaný parametr s řetězcem získaným ze standardního vstupu, což je něco úplně jiného. Vracet řetězec není možné. Jednou z cest je to, co už tu bylo psáno:
function vstup() { echo -n "Zadej něco: " 1>&2 read str echo $str } HODNOTA="$(vstup)" echo "Byl zadán tento řezězec: \"${HODNOTA}\""
Je třeba přesměrovat první echo na chybový výstup, protože funkce na standardní výstup pošle načtenou hodnotu.
Postupovat lze samozřejmě i jinak, totiž „změnit hodnotu proměnné“.
function vstup() { echo -n "Zadej něco: " 1>&2 read $1 } vstup HODNOTA echo "Byl zadán tento řezězec: \"${HODNOTA}\""
function test(){
echo "result"
}
local v=$(test)
Na spouste webech se pise prave pres tu globalni promenou. Ale to se mi zda dost neprakticke. Chci mit funkci univerzalni, bez toho aniz by byla zavisla na globalni promene. Ale nevim jestli se to v Bash programovani da. Teda asi jo, viz muj priklad, ale nevim, jestli je to OK.
V C, Jave, atd, je normalni pasnout a vratit promene.
Nejsem velky programator, ale na vejsce jsem pres to prosel.
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
f() { return $1 } f 5 [[ $? == 5 ]] && echo huraalebo ako radi kolega pnemec vyssie. Bash bezne nerozlisuje medzi textovou a ciselnou hodnotou. Preto mi v prikalde funguje test $? == 5 (textove porovnanie) a fungovalo by aj $? -eq 5 (cislene porovnanie). V podstate vsetko je text (ak nie je deklarovane inak), dokym sa k tomu neprisutpuje ako k cislu. Doporucujem man bash.
Dovolim si s vami nesouhlasit
Priklad, ktery jste uvedl plati jen pro ciselne hodnoty. Vyzkousejte si pasnout do funkce nejake slovo a return to nevrati.
Prave proto se tu ptam. Na internetu jsem toho precetl furu, ale moc nic nemuzu sehnat, protoze vsude jsou priklady jen na ciselne hodnoty.
Samozrejme to co jsem napsal je jen zjednoduseny priklad priklad.
Jedine co jsem nejak dal dohromady, je to co jsem tu napsal jako priklad. Proto jsem se zeptal jestli je to spravne, nebo jestli se to da udelat nejak lepe.
Co takhle, kdyby jste si to vyzkousel . Jinak diky za snahu.
Funkce může vracet pouze celočíselnou hodnotu, pro přirovnání je to asi stejné jako kdyby jsi chtěl, aby návratová hodnota programu byl řetězec. Dívej se na to tak, že Bash funkce je program a její návratová hodnota informuje o jeho úspěšném/neúspěšném ukončení.
Jinak jak Ti radí výše, lze získat i řetězec pomocí echo.
Co se týče hledání a příkladu, tak ten je přímo tady na Ábíčku Funkce a příkazy
f() { echo $1; } A=$(f xxx) echo Return code: $? echo Return value: $A
Tiskni
Sdílej: