Portál AbcLinuxu, 8. listopadu 2025 21:54
array( "Restartovat Apache?"=>restart_apache, "Restartovat Mysql?"=>restart_mysql, "Restartovat Exim?"=>restart_exim )
declare -A array array["restart_apache"]="Restartovat Apache?" array["restart_mysql"]="Restartovat MySQL?" array["restart_exim"]="Restartovat Exim?"nebo jak zněla otázka?
Asociativni pole až bash verze 4:Takovou starou verzi patrně už nikde neseženu
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
i+=3 je lepší, a zkus přijít na to proč
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?
.i=i+3 = i+=3.
a += b' je v C i v aritmetické expanzi bashe (která z C operátory převzala) zkratka za 'a = a + b'.
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
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… :-)
dialog?
Osobně však dávám přednost příkazům
rcapache2 restartrcmysql restartrcexim restartsystemctl restart foobar.service
for i in /etc/init.d/*; do alias rc`basename "$i"`='sudo '"$i"''; doneTak to mám v
~/.bash_alias
skeleton a podadresáře.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.