summaryrefslogtreecommitdiff
path: root/bin/problem-6.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/problem-6.sh')
-rwxr-xr-xbin/problem-6.sh33
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