diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rwxr-xr-x | bin/problem-6.sh | 33 | ||||
| -rwxr-xr-x | bin/test | 4 |
3 files changed, 37 insertions, 2 deletions
@@ -1,6 +1,4 @@ *.pdf -*.o tmp -bin pkg node_modules 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 diff --git a/bin/test b/bin/test new file mode 100755 index 0000000..42b2807 --- /dev/null +++ b/bin/test @@ -0,0 +1,4 @@ +#!/bin/sh + +export PATH="./vendor/bats/bin:./bin:$PATH" +bats --tap test |
