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 18:11 | Nová verze

Byla vydána verze 2.23.0 distribuovaného systému správy verzí Git. Přispělo 77 vývojářů, z toho 26 nových. Přehled novinek v poznámkách k vydání nebo v příspěvku na blogu GitHubu.

Ladislav Hagara | Komentářů: 2
včera 13:33 | Komunita

Nadace Raspberry Pi na svém blogu informuje o vydání Scratch 3 Desktopu pro Raspbian na Raspberry Pi. Verze 3 výukového vizuálního programovacího jazyka Scratch byla vydána v lednu letošního roku. Offline Scratch Desktop byl ale dosud dostupný pouze pro Windows a macOS.

Ladislav Hagara | Komentářů: 0
15.8. 19:44 | Bezpečnostní upozornění

Byly zveřejněny informace o 8 bezpečnostních chybách v implementacích protokolu HTTP/2. Chyby CVE-2019-9511 až CVE-2019-9518 lze zneužít k odepření služeb (DoS). Přehled softwarových produktů a v nich obsažených chyb v tabulce na stránce CERT/CC.

Ladislav Hagara | Komentářů: 16
15.8. 17:55 | Nová verze

Byla vydána verze 1.37.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

Ladislav Hagara | Komentářů: 88
15.8. 15:11 | Nová verze

Byla vydána nová verze 19.08.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi. Videoukázka nových vlastností na YouTube nebo na PeerTube.

Ladislav Hagara | Komentářů: 5
15.8. 14:44 | Zajímavý projekt

CutiePi je open source tablet postavený na Raspberry Pi, konkrétně na Compute Module. K dispozici by měl být koncem roku. Cena zatím nebyla stanovena. Vývojový tým zjišťuje zájem [Hacker News].

Ladislav Hagara | Komentářů: 8
14.8. 21:33 | Zajímavý článek

Greg Kroah-Hartman v příspěvku na svém blogu popisuje svou práci na linuxovém jádře. Popis prokládá videoukázkami ve formátu asciinema. Dnes používá především poštovního klienta Mutt. V plánu má přejít na poštovního klienta aerc, pokud do něj budou přidány v popisu zmíněné vlastnosti.

Ladislav Hagara | Komentářů: 0
14.8. 21:11 | Nová verze

Bylo oznámeno, že EPEL (Extra Packages for Enterprise Linux) ve verzi 8.0 je připraven k vydání. Vedle x86_64, ppc64le a aarch64 je nově podporována také platforma s390x.

Ladislav Hagara | Komentářů: 0
14.8. 14:00 | Zajímavý projekt

Goldberg Emulator je reimplementace Steam API, aby bylo možné hrát hry ze Steamu bez Steamu. Ačkoliv autor projekt zveřejnil až letos v dubnu, pracovat na něm začal již před rokem a nyní v zápisku shrnuje zkušenost s vývojem, např. jak se musí vypořádávat s latencí her.

Fluttershy, yay! | Komentářů: 3
14.8. 11:33 | Komunita

Apache Software Foundation (ASF) zveřejnila (pdf) výroční zprávu za fiskální rok 2019. V březnu letošního roku nadace oslavila (YouTube) 20 let své existence. Dnes spravuje více než 350 projektů a iniciativ.

Ladislav Hagara | Komentářů: 0
Používáte ještě 32bitový software na PC?
 (20%)
 (15%)
 (17%)
 (42%)
 (6%)
 (29%)
Celkem 422 hlasů
 Komentářů: 35, poslední včera 13:29
Rozcestník

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

4.2. 16:41 Zacatecnik
Jak předat funkci v bash název proměnné?
Přečteno: 280×
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. 16:45 Kit | skóre: 43 | 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. 16:51 k3dAR | skóre: 56
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. 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. 17:51 k3dAR | skóre: 56
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. 17:59 xkucf03 | skóre: 48 | 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. 23:08 Andrej | skóre: 47 | 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.