GNU/Linux >> Znalost Linux >  >> Linux

Linux bash. pro smyčku a funkci, pro sčítání čísel

Zkuste toto:

n=$1

sum=0
for i in `seq 1 $n` ; do
    ## redefine variable 'sum' after each iteration of for-loop
    sum=`expr $sum + $i`
done

echo $sum

Se smyčkou while a podobnou vašemu kódu:

#!/bin/bash

n=$(expr $1 + 1)
result=0
j=0

add(){
    result=$(expr $result + $j)
}

while test $j -ne $n
do
    add
    j=$(expr $j + 1)
done

echo $result

$(..cokoli..) je podobné jako `..cokoli..`, provede váš příkaz a vrátí hodnotu. Testovací příkaz je velmi užitečný, podívejte se na muže. V tomto případě simuluje cyklus for porovnáním podmínky $j -ne $n (j se nerovná n) a přidáním 1 k j var v každém otočení cyklu.


Můžete to zkusit níže:

#!/usr/bin/env bash

sumit() {
    local n=$1
    local sum=0
    for (( i=0;i<=n;i++ )) ; do
        (( sum = sum + i ))
    done

    echo "$sum"
}

sum=$(sumit $1)
echo "sum is ($sum)"

Linux
  1. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  2. Příklady Bash for Loop a While Loop

  3. Bash for smyčky Příklady

  1. Cheat sheet pro uživatele Linuxu a oprávnění

  2. 10 praktických aliasů Bash pro Linux

  3. Pomocí a ve smyčce Bash while

  1. 10 návodů na příkazy Linuxu pro začátečníky a experty

  2. Bash pro průvodce smyčkou a příklady

  3. Skriptování v Linuxu:3 postupy pro smyčky while v Bash