diff options
Diffstat (limited to 'bin/problem-6.sh')
| -rwxr-xr-x | bin/problem-6.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/problem-6.sh b/bin/problem-6.sh new file mode 100755 index 0000000..e868c90 --- /dev/null +++ b/bin/problem-6.sh @@ -0,0 +1,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 |
