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

    Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 16:33 | IT novinky

    Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.

    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

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

    Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.10. 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 3
    6.10. 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    6.10. 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

    Ladislav Hagara | Komentářů: 0
    6.10. 17:22 | Nová verze

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    6.10. 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    6.10. 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (39%)
     (46%)
     (15%)
     (17%)
     (21%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 191 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: bash-aritmetika s argumenty

    27.11.2008 11:02 king
    bash-aritmetika s argumenty
    Přečteno: 575×

    Ahoj, chtel bych provadet aritmetiku nad argumenty sheelskriptu ($1, $2, ...). Neco ve stylu:

    for arg in $(seq $#); do

       echo "argument cislo $arg: ${$arg}

    done

    Bash mi ale rve Bad substitution. Nevite, jak provadet expanzi za nazev promenne? dekuji 

    Odpovědi

    27.11.2008 11:25 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    for arg in $(seq $@); do
       echo "argument cislo $arg: $arg"
    done
    27.11.2008 11:35 king
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty

    hmmm

    a kdyz budu chtit skocit o 3 doprava a pak o 2 doleva? 

    27.11.2008 11:58 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    declare -a pole
    
    pole=( $(seq -s ' ' $@) )
    
    echo "${pole[@]}"
    echo "${pole[3]}"
    echo "${pole[1]}"
    27.11.2008 12:05 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    Len na vypisanie argumentov ti staci jednoduchsi cyklus
    for i; do
    # to iste ako for i in *; do
        echo "$i"
    done
    Ak to chces cez cislo argumentu, tak potrebujes nepriame odkazovanie
    for ((i=1; i<$#; i++)); do
        echo "argument cislo $i: ${!i}"
    done
    Ak chces najprv robit aritmetiku o tom, ktory argument vlastne chces;
    i=2
    j=$((i+4))
    echo "argument cislo $j: ${!j}"
    If you hold a Unix shell up to your ear, you can you hear the C.
    27.11.2008 13:01 king
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty

    to je ono!

    ${!variable}

    divne je ze manualova stranka bashe se o teto konstrukci nezminuje.

    27.11.2008 14:33 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    Ale zmienuje. v casti Parameter Expansion

    If the first character of parameter is an exclamation point, a level of variable indirection is introduced. Bash uses the value of the variable formed from the rest of parameter as the name of the variable; this variable is then expanded and that value is used in the rest of the substitution, rather than the value of parameter itself. This is known as indirect expansion. The exceptions to this are the expansions of ${!prefix*} and ${!name[@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection.
    If you hold a Unix shell up to your ear, you can you hear the C.
    27.11.2008 13:23 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    v cyklu to zle udělat i třeba takto:
    argCislo=1
    
    for arg in "$@"; do
    	echo "argument cislo: $argCislo je: $arg"
    	let argCislo++
    done
    27.11.2008 19:13 luky
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty

    Coz ovsem neni v nicem lepsi reseni nez to predchozi, nemluve o tom, ze pointa je jinde :) 

    27.11.2008 19:20 Jan Šimák | skóre: 37 | Hradec Králové
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty
    Tady ale nešlo o ukázku lepšího řešení :-D které z podstaty ani být nemůže ;-)
    27.11.2008 12:10 Jirka P
    Rozbalit Rozbalit vše Re: bash-aritmetika s argumenty

    Dá se klasicky přes eval:

    eval echo "argument cislo $arg: \${$arg} 

    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.