summaryrefslogtreecommitdiff
path: root/bin/problem-6.sh
blob: e868c90e3793d28d751fbc131f007f17f9999ca2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh

validate_input() {
  invalid=0
  regex='^[0-9]+$'

  for i in "$@"; do
    if ! [[ $i =~ $regex ]]; then
      echo "error: \"$i\" is not a number" >&2
      invalid=1
    fi
  done

  if [ $invalid -eq 1 ]; then
    exit 1
  fi
}

print_results() {
  sum=0

  printf "squares:"
  for i in "$@"; do
    sum=$((sum + $i))
    printf " $(($i * $i))"
  done
  printf "\n"
  echo "sum: $sum"
}

validate_input $@
print_results $@
exit 0