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í
×
dnes 14:22 | Zajímavý projekt

GitHub v příspěvku na svém blogu představil GitHub Sponsors. Jedná se o další z možností, jak finančně podpořit vývojáře open source softwaru. Podrobnosti v často kladených dotazech (FAQ).

Ladislav Hagara | Komentářů: 8
dnes 13:44 | Zajímavý software

Společnost Feral Interactive zabývající se vydáváním počítačových her pro operační systémy macOS a Linux vydala počítačovou hru Total War: Three Kingdoms (Wikipedie) pro Linux. Koupit ji lze za 59,99 €. Tentokrát byla verze pro Linux vydána ve stejný den jako verze pro Microsoft Windows.

Ladislav Hagara | Komentářů: 0
dnes 10:00 | Nová verze

Po téměř 11 měsících vývoje od vydání verze 5.28 byla vydána nová stabilní verze 5.30 programovacího jazyka Perl. Do vývoje se zapojilo 58 vývojářů. Změněno bylo přibližně 620 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

Ladislav Hagara | Komentářů: 1
včera 16:44 | Nová verze

Bylo vydáno openSUSE Leap 15.1. Přehled novinek v nejnovější verzi této linuxové distribuce v oznámení o vydání a v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 11:55 | Nová verze

Byla vydána verze 3.14 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl aktualizován na verzi 8.5. Řešeno je také několik bezpečnostních chyb. Především bezpečnostní chyby v procesorech Intel.

Ladislav Hagara | Komentářů: 1
včera 11:33 | Nová verze

Byla vydána nová verze 2019.2 průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek v seznamu změn. Současně byl ve verzi 2019.2 vydán také Kali Linux NetHunter (Wikipedie), tj. obrazy s nástroji z Kali Linuxu pro chytré telefony a tablety.

Ladislav Hagara | Komentářů: 0
včera 11:22 | Nová verze

Vyšel webový prohlížeč Tor Browser, založený na Firefoxu (60.7) a zaměřený na ochranu soukromí, ve verzi 8.5. Mění vzhled, zlepšuje přístupnost a nově je prohlášen za stabilní na Androidu.

Fluttershy, yay! | Komentářů: 0
21.5. 16:11 | Nová verze

Byl vydán Mozilla Firefox 67.0. Přehled novinek v poznámkách k vydání a na stránce věnované vývojářům. Zdůraznit lze blokování těžby kryptoměn a otisku prohlížeče, viditelnější účet Firefoxu nebo rychlý přístup ke správci hesel.

Ladislav Hagara | Komentářů: 7
21.5. 03:33 | Komunita

Rozšířená podpora operačního systémy Microsoft Windows 7 skončí 14. ledna 2020. Poté je možné využít placené podpory, přejít na Windows 10 nebo prostě na Linux. Vláda Jižní Koreje zkouší Linux. Přechod na Linux včetně nákupu nových počítačů by ji měl vyjít na 655 milionů dolarů.

Ladislav Hagara | Komentářů: 33
21.5. 02:22 | IT novinky

CZ.NIC ODVR (Otevřené DNSSEC Validující Resolvery) nově podporují vedle DNS-over-TLS (DoT) také DNS-over-HTTPS (DoH). DoH lze vyzkoušet ve Firefoxu od verze 62, Chrome od verze 66 nebo Bromite od verze 67.

Ladislav Hagara | Komentářů: 0
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (49%)
 (25%)
 (24%)
 (2%)
Celkem 336 hlasů
 Komentářů: 28, poslední 21.5. 04:02
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: 261×
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: 54
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: 54
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: 47 | 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, Relational pipes (AWK)
4.2. 23:08 Andrej | skóre: 46 | 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.