Portál AbcLinuxu, 12. května 2025 00:49

Dotaz: BASH - Neuvěřitelné! Jak je tohle vůbec možné?

18.10.2012 21:53 Fofy
BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Přečteno: 726×
Odpovědět | Admin
Hoj všem! ;-)
#!/bin/bash

# Creating function
function ěščřžýáíé ()
{
     echo "blablabla"
}

# Cool function
ěščřžýáíé {}

# Result
blablabla
Jak je tohle možné?


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.10.2012 22:14 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano je to neuvěřitelné, dělá to to, co to má dělat.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
18.10.2012 22:50 Fofy
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Ano je to neuvěřitelné, dělá to to, co to má dělat.
Jasně :-D ale co ty české znaky v názvu funkce?
Jendа avatar 18.10.2012 23:22 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
No a co? Bere to Unicode stringy normálně.

I když trochu mě překvapilo, že to Bash umí. Z jiných běžných jazyků/interpreterů, co znám, to umí už jen PHP (ta nejběžnější implementace).
18.10.2012 23:48 Jakub
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Javě to také nedělá nejmenší problém.
19.10.2012 00:11 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
V Javě je to něco jiného. Java explicitně povoluje Unicodové znaky, které jsou podle standardu písmena. To znamená, že záleží na tom, která verze standardu se zrovna vzala, a nejspíš lze použít v novější verzi Javy znaky, které starší verze ještě coby písmena nezná...

V shellu se funkce může jmenovat "\x02\xfe", pokud to dokážeš do zdrojáku zpsat.
19.10.2012 00:02 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Název funkce = jméno příkazu = jméno souboru = sekvence bajtů.

Shellu ani nevadí, že to není validní UTF-8 nebo cokoli. U jmen souborů se to taky neřeší. Narazíš samozřejmě se znaky, které pro shell mají speciální význam.
Jendа avatar 19.10.2012 00:09 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Název funkce = jméno příkazu = jméno souboru = sekvence bajtů.
Hmm, to se vybourá, když v UTF-8 bude bajt jako je ASCII mezera/tabulátor/newline, ne?
19.10.2012 00:12 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Kvízová otázka č. 1: Jaké bajty se mohou objevit v UTF-8 expansi Unicode znaků ležících mimo rozsah ASCII?
19.10.2012 13:43 Sten
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Ne tak úplně. Ve jménu fuknce třeba nemůže být mezera nebo uvozovky, příkaz to klidně mít může.
19.10.2012 13:38 Sten
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Taky to umí třeba C99, C++11, C#, D, Java nebo Python 3.
19.10.2012 20:35 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Jo, jsem chtěl podotknout, že v C je to taky už třináct let ve standardu, ale naštěstí jsem to nikoho nikdy neviděl použít. A dokud tvůrci GCC vydrží tuhle misfeaturu ignorovat, tak snad ani neuvidím.

Vlastně jsem tyhle věci naživo viděl akorát v českém Excelu -- a z názvů funkcí jako PRŮMĚR mi vstávají vlasy na hlavě...
18.10.2012 22:52 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Odpovědět | | Sbalit | Link | Blokovat | Admin
To snad opravdu není možné, že někdo cpe {} na takhle nesmyslná místa.
18.10.2012 23:30 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
:-) to jsem přehlídl…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.10.2012 00:00 Fofy
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
To snad opravdu není možné, že někdo cpe {} na takhle nesmyslná místa.
Uniká mi pointa tvé narážky.....
19.10.2012 00:13 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Tak si v tom skriptu to {} najdi...
19.10.2012 08:29 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Tam jak chceš zchladit funkci, tak tímto '{ }' se nechladí.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.10.2012 10:36 Fofy
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Tam jak chceš zchladit funkci, tak tímto '{ }' se nechladí.
A jak se tedy chladí funkce?
19.10.2012 11:15 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Nemám šajn, to musíš vědět ty…
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.10.2012 11:24 Fofy
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Nemám šajn, to musíš vědět ty…
No hlavně že víš, že tak se to nepíše... ale nevíš jak se to píše?
19.10.2012 11:48 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Nic o tom „jak se co píše“, jsem neuváděl.
Ale aby jsme se pohnuli, to '{}' za voláním fce a za komentářem „ochladit funkci“ je tam tedy proč?
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
19.10.2012 12:52 Fofy
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Jo to narážíš na pojem "Cool" teď mě to trklo, cool ne jako chladný ale bylo myšleno cool jako drzý :-D Jinak složené závorky jsou tam proto, abych věděl, že se jedná o fce.. nic víc nic mín, ale třeba máš lepší způsob jak nějakou fce zavolat...
19.10.2012 13:51 l4m4
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Ty složené závroky dostane ta funkce coby argument. Stejně jako cokoli jiného, co tam napíšeš. Jelikož normální funkce normálně dostávají nějaké smysluplné argumenty a něco s nimi dělají není strategie ,abych věděl, že ze jedná o fce` příliš šťastná... Navíc k čemu takové vědění je? Krása věci je v tom, že funkce jsou (skoro) jako příkazy nebo programy.
19.10.2012 19:37 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH - Neuvěřitelné! Jak je tohle vůbec možné?
Ke komentáři, narážím protože jsem na něj furt hleděl co to má být. Popis fce se obvykle uvádí u deklarace/definice, ne u jejího volání, tam když nějaký komentář je, tak očekávám obvykle sloveso „co se děje“ - tak jsem přemýšlel jestli to není oznámení zřejmé věci jako „Call the function“, nebo co…
Mám lepší způsob, buď „halóó“, nebo prostě jen:
ěščřžýáíé
Nevím proč zrovna {} nějak označuje volání fce, ale kažodpádně je to předání parametru, což zjistíš modifikací řádku s výpisem na:
echo "blablabla $1"
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.