#!/bin/bash
# Show help function
# Call with: -h
function help(){ cat << EOF
Arguments:
Calculate the sum of several numbers. Example: $sum 19 115 21
10 7 3
As soon as a letter is given in the argument, the program issues an error message.
EOF
}
#Main program
if [ "$1" == "-h" ] ; then
help
exit
fi
check='^[0-9]+$'
if ! [[ $var =~ $check ]] ; then
echo "error: Caution! It is not a number!"
continue
fi
x=${1//[^0-9]/}
sum=0
for ((i=0; i<${#x}; i++));
while [[ num -gt 0 ]];do
var=$(($num % 10))
num=$(($num / 10))
sum=$(($sum + $var))
done
echo $sum
プログラムは1つ以上の数字を引数として受け取り、指定された各数字の数字の合計を計算する必要があります。私は何も得られませんでした。プログラムはどのように複数の数値を引数として受け取り、計算しますか? ifループとwhileの両方を使用しました。説明は80文字を超えることはできません。
ベストアンサー1
これは反復的なアプローチです。数字数字を入力して合計します。
sum_digits() {
local num=$1 len=${#1} sum=0 digit i
for ((i=0; i<len; i++)); do
digit=${num:i:1}
sum=$((sum + digit))
done
echo "$sum"
}
それから
$ sum_digits 123
6
$ sum_digits 987654321
45
${var:offset:length}
抽出するシェルのパラメータ拡張。サブストリング変数の値を超えています。