Portál AbcLinuxu, 4. června 2024 15:47


Dotaz: BASH-Více parametrů v array

11.6.2012 14:07 Host
BASH-Více parametrů v array
Přečteno: 479×
Odpovědět | Admin
Ahoj, mám ještě jeden dotaz, jak můžu zapsat do pole více parametrů, zkoušel jsem to takto ale hlásí to špatný zápis. Díky
array(
"Restartovat Apache?"=>restart_apache, 
"Restartovat Mysql?"=>restart_mysql, 
"Restartovat Exim?"=>restart_exim
)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2012 14:21 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asociativni pole až bash verze 4:
declare -A array
array["restart_apache"]="Restartovat Apache?"
array["restart_mysql"]="Restartovat MySQL?"
array["restart_exim"]="Restartovat Exim?"
nebo jak zněla otázka? :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.6.2012 15:36 Host
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Asociativni pole až bash verze 4:
Takovou starou verzi patrně už nikde neseženu :-D Jinak toho jsem se bál, že to nejde:(

Jinak mám jesště takový dotaz, mám for..

array=(aaa bbb ccc ddd eee fff ggg hhh iii jjj kkk)
for ((i=0; i<${#array[*]}; i++))

vypisuje
aaa
bbb
ccc
ddd
atd..
ale když potřebuji načíst každý třetí parametr z toho pole tak se mu nechce
for ((i=0; i<${#array[*]}; i+3))

potrebuji vypsat
aaa
ddd
hhh
atd..
Co dělám blbě? i+3 přece musí fungovat.. ne? Díky
11.6.2012 15:46 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Jinak toho jsem se bál, že to nejde…
Určite to nějak jde…, když už tak starou verzi nesehnals…
i+=3 je lepší, a zkus přijít na to proč :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.6.2012 16:05 Host
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
i+=3 je lepší, a zkus přijít na to proč :-)
Tak to fakt nedává smysl, ted jsem zjistil ze funguje i tohle i=i+3 coz i chápu ale i+=3 je prece matematicky nesmysl, ne? :-D
11.6.2012 16:12 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Uč se, to dohledáš, matematika s tím nemá co dělat :-).
i=i+3 = i+=3.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
11.6.2012 16:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Výraz 'a += b' je v C i v aritmetické expanzi bashe (která z C operátory převzala) zkratka za 'a = a + b'.
11.6.2012 18:09 Host
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
OK mrknu se na to;) Stejně to má ale nějaké divné chování, teď jsem zkoušel pomocí echo vypsat tu proměnou $i což se vypíše ale pokud k ní potřebuji přidat hodnotu 1 tak se to vypíše jako string $i=$i+1 :( Tak tomu už fakt neroumím.. zlaté PHP..
11.6.2012 18:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Možná by pomohlo si místo střílení naslepo přečíst aspoň základní popis toho, jak aritmetická expanze (a expanze obecně) v shellu funguje…
11.6.2012 23:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Tak, PHP-ko bych tam netahal, ten dolar sice není podobnost náhodná, ale jinak je to dost rozdílné, i když to vypadá podobně.
Programovací a scriptovací jazyky se liší, pokud jich již několik znáš, a chceš další, tak si stejně musíš nastudovat aspoň základy a pak už jen dohledáváš, ale základy je třeba vstřebat, jinak je to jak z brokovnice z upilovanou hlavní na 50m do třešně.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
12.6.2012 06:22 Mr.S1lent.cz
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
PHP je jazyk, ve kterem pise kazda lama a pak to tak dopada (to neni narazka na tebe, to je mysleno obecne). Kazdy programator by mel umet c/c++, aby pak v php nepsal overloadove prisernosti. Ale jinak pretizene operatory += ci -= jsou i v PHP :-)

A k tomu bashi: vyraz i+3 prece nijak neovlivni i. Neni tam nikde nic, co by kopirovalo/prepisovalo hodnotu "i" - ani funkci, ani zadnym s "=" rodiny operatoru :-)

Prece vzdy, kdyz chces ovlivnit hodnotu promenne, numusis pouzit funkci, anebo =, ci +=, apod. operator ++ je specificky, neni to plus, ale inkrementace: x++ je ekvivalentni x=x+1 :-)
12.6.2012 06:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
PHP je jazyk, ve kterem pise kazda lama a pak to tak dopada

Ne že by na syntaxi PHP nebylo co kritizovat, ale oproti syntaxi Bourne shellu je to v podstatě přehledný a logicky vystavěný jazyk. Ale to je nejspíš cokoli kromě Perlu… :-)

12.6.2012 08:01 Mr.S1lent.cz
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Syntaxi mozna ne, spis to, ze v tom dela kazdy bez nejakych hlubsich znalosti programovani - prace s pameti a programovacich paradigmat. Jinak na mensi az stredne velke projekty je PHP urcite vhodne, zejmena kvuli rychlosti vyvoje i bez frameworku a jeste vetsi rychlosti s nimi:-)
11.6.2012 15:21 NN
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Odpovědět | | Sbalit | Link | Blokovat | Admin
Priapdne prez pole poli..

NN
11.6.2012 15:34 Kit
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak mě napadá: Nebylo by jednodušší místo takového lepení použít dialog?

Osobně však dávám přednost příkazům Připadá mi to jednodušší
11.6.2012 23:51 l4m4
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
To se nám zase urodilo příkazů...
systemctl restart foobar.service
12.6.2012 06:53 Kit
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Vždy je nutné udělat nějaký kompromis mezi větším množstvím jednoduchých příkazů a malým množstvím komplexních příkazů. Příkazy začínající na "rc" jsou výmyslem SuSE a mně prostě vyhovují do té míry, že jsem si je nacpal i do Ubuntu ve formě aliasů. S našeptávačem je jejich použití IMHO velmi rychlé. Rychlejší, než hledání v menu a rychlejší, než výše uvedený komplexní příkaz. Je to prostě jen věcí zvyku a názoru.
12.6.2012 08:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
<flame>rcXXXX a správa uživatelů v LDAP-u (v Yast-u), je to co dobrého zůstalo z OpenSuSE</flame>
Dělal jsi ty aliasy nějak automaticky? bo ono to má význam, jen pokud je tam vše co tě napadne i případně 1× za rok.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
12.6.2012 10:16 Kit
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Myslíš něco takového?
for i in /etc/init.d/*; do alias rc`basename "$i"`='sudo '"$i"''; done
Tak to mám v ~/.bash_alias
12.6.2012 11:44 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Asi by to chtělo vynechat přinejmenším skeleton a podadresáře.
12.6.2012 13:45 Kit
Rozbalit Rozbalit vše Re: BASH-Více parametrů v array
Sice tam žádné podadresáře nemám, ale asi to myslíš takto:
for i in /etc/init.d/*; do
   test -x "$i" -a ! -d "$i" && 
      alias rc`basename "$i"`='sudo '"$i"''
done

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.