abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 09:00 | Nová verze

Byla vydána nová verze 13.8 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v příspěvku na blogu.

Ladislav Hagara | Komentářů: 0
22.1. 16:33 | Zajímavý článek

Otevřená certifikační autorita Let’s Encrypt v příspěvku na svém blogu představila své nové databázové servery. Hardware: 2U rack server Dell EMC PowerEdge R7525, CPU 2x AMD EPYC 7542, Memory 2TB 3200MT/s, Storage 24x 6.4TB Intel P4610 NVMe SSD. Software: OpenZFS a MariaDB s InnoDB.

Ladislav Hagara | Komentářů: 12
22.1. 15:33 | Zajímavý článek

Článek systemd pro vývojáře: lokální vývojové servery v systemd na MojeFedora.cz doporučuje vývojářům používání systemd k ovládání svých projektů pomocí "systemctl --user".

Ladislav Hagara | Komentářů: 23
22.1. 14:44 | Nová verze

Vyšla nová verze souborového manažera Midnight Commander 4.8.26. Mezi hlavní novinky patří zachování obsahu příkazové řádky při přepínání panelů pomocí Ctrl+O, stíny okolo dialogových oken jako v Norton Commanderu a dalších (vytvořeno autorem zprávičky), podpora jakkoli dlouhých názvů souborů a spousta dalších drobnějších věcí.

Aleš Janda | Komentářů: 14
22.1. 07:00 | Komunita

Projekty Elasticsearch a Kibana změní s verzí 7.11 licenci. Už se nebude jednat o open source software. Důvodem změny licence byl spor se společností AWS (Amazon Web Services). AWS na změnu licence odpovídá vlastním forkem. Vycházet bude z verze 7.10 a zůstane pod open source licencí Apache.

Ladislav Hagara | Komentářů: 18
21.1. 23:33 | Komunita

Lidé ze společnosti Corellium se včera na Twitteru pochlubili screenshotem Ubuntu na Apple Siliconu aneb zprovoznili Ubuntu na počítači Apple s novým ARM procesorem M1. CTO jej už používá k vývoji ve svém herním křesle s 49 palcovým monitorem. Dnes byly na blogu Corellium publikovány detaily a pro případné zájemce i návod a obraz ke stažení. Upravili obraz Ubuntu pro Raspberry Pi.

Ladislav Hagara | Komentářů: 22
21.1. 13:22 | IT novinky

Rodina počítačů Raspberry Pi se rozšířila o jednočipový počítač Raspberry Pi Pico v ceně 4 dolary s vlastním procesorem RP2040. Představení na YouTube.

Ladislav Hagara | Komentářů: 12
20.1. 22:33 | Komunita

Společnost Red Hat na svém blogu oznámila, že Red Hat Enterprise Linux (RHEL) bude možné provozovat zdarma na 16 serverech.

Ladislav Hagara | Komentářů: 35
20.1. 14:55 | Bezpečnostní upozornění

Pod společným názvem DNSpooq byly zveřejněny informace o 7 bezpečnostních chybách v DNS caching a DHCP serveru dnsmasq. Jedná se o cache poisoning (CVE-2020-25686, CVE-2020-25684, CVE-2020-25685) a buffer overflow (CVE-2020-25687, CVE-2020-25683, CVE-2020-25682, CVE-2020-25681). Jejich kombinací lze dosáhnout závažnosti CVSS 9.8. Chyby jsou opraveny v dnsmasq 2.83.

Ladislav Hagara | Komentářů: 2
20.1. 13:33 | Nová verze

Byla vydána nová stabilní verze 19.07.6 (Changelog) linuxové distribuce primárně určené pro routery a vestavěné systémy OpenWrt (Wikipedie). Řešena je také řada bezpečnostních chyb. Především v dnsmasq (DNSpooq).

Ladislav Hagara | Komentářů: 0
Jestliže používáte distribuci CentOS, kterou náhradu plánujete vzhledem k oznámenému ukončení vydávání?
 (28%)
 (4%)
 (2%)
 (21%)
 (0%)
 (3%)
 (43%)
Celkem 196 hlasů
 Komentářů: 3, poslední 10.1. 13:01
Rozcestník

Dotaz: Jak předat funkci v bash název proměnné?

4.2.2019 16:41 Zacatecnik
Jak předat funkci v bash název proměnné?
Přečteno: 337×
Ahoj,

mám taková kód ale nefunguje to, může prosím někdo poradit?
VAR="4561"

function foo {
  echo ${1} ${2}
}

foo VAR "blabla" 

požadovaaný výsledek: 4561 blabla

Řešení dotazu:


Odpovědi

4.2.2019 16:45 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?
foo "$VAR" "blabla" 
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
k3dAR avatar 4.2.2019 16:51 k3dAR | skóre: 60
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?
${VAR}
porad nemam telo, ale uz mam hlavu... nobody
4.2.2019 17:10 Zacatecnik
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?
Jasně ale potřebuji naplnit tu proměnnou VAR až uvnitř funkce - jako by byla lokální a jako parametr předat jen název té proměnné. Díky

function foo {
  local VAR="4561"
  echo ${1} ${2}
}

foo VAR "blabla" 

požadovaaný výsledek: 4561 blabla
Řešení 1× (Michal Kubeček)
k3dAR avatar 4.2.2019 17:51 k3dAR | skóre: 60
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?
jasne, ale to nesmis puvodne psat spatne zadani ;-)
function foo {
  local VAR="4561"
  echo ${!1} ${2}
}

foo VAR "blabla" 
porad nemam telo, ale uz mam hlavu... nobody
Řešení 1× (Michal Kubeček)
xkucf03 avatar 4.2.2019 17:59 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?

V Bashi můžeš mít proměnnou proměnnou, takže jde napsat třeba:

VAR=4561
foo() { echo "${!1}" "$2"; }
foo VAR blabla

a vypíše to:

4561 blabla

Tzn. do funkce nepředáváš hodnotu proměnné, ale její název a hodnota se zjistí až uvnitř té funkce. Dá se takhle pěkně prasit… takže pokud nemáš hodně dobrý důvod, proč tohle dělat, tak to nedělej, protože to po tobě nikdo nepřečte (v případě delších skriptů).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
4.2.2019 23:08 Andrej | skóre: 48 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Jak předat funkci v bash název proměnné?

Snadné řešení je "${!1}", jak už tu párkrát zaznělo. Já tedy přidám ještě jednu možnost — poor man’s pointer v Bashi. Čistě pro zajímavost.

VAR="4561"

function foo {
  local -r -n first_arg_ref="$1"
  local -r -i last_arg_name="$#"
  echo "$first_arg_ref" "${!last_arg_name}"
}

foo VAR "blabla"

Mimo funkci by to bylo declare -n místo local -n, ale jinak je princip stejný. To je drobné kouzlo, které umožňuje „dereferencovat“ „pointer“ bez vykřičníku, tj. chová se to pak jako reference. Super to je, když potřebuju předat do funkce několik polí. Nebýt -n, musel bych použít eval.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.