これを試してください:
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
while ループを使用して、コードに似ています:
#!/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
$(..whatever..) は `..whatever..` に似ており、コマンドを実行して値を返します。 test コマンドは非常に便利です。man を参照してください。この場合、条件 $j -ne $n (j not equal n) を比較し、ループの各ターンで j var に 1 を追加する for ループをシミュレートします。
以下を試すことができます:
#!/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)"
ディレクトリに対してのみ No such file or directory エラーが発生する bash スクリプトのコマンドを検索しますか?
sudo:bundle コマンドが見つからないのはなぜですか?