summaryrefslogtreecommitdiff
path: root/rushs/evalexpr/seq/seq.sh
diff options
context:
space:
mode:
Diffstat (limited to 'rushs/evalexpr/seq/seq.sh')
-rwxr-xr-xrushs/evalexpr/seq/seq.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/rushs/evalexpr/seq/seq.sh b/rushs/evalexpr/seq/seq.sh
new file mode 100755
index 0000000..9721432
--- /dev/null
+++ b/rushs/evalexpr/seq/seq.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+if [ $# -ne 3 ]; then
+ echo "Usage: ./seq.sh FIRST INCREMENT LAST" 1>&2
+ exit 1
+fi
+
+if [ "$2" -eq 0 ]; then
+ exit 1
+fi
+
+if [ "$1" -eq "$3" ]; then
+ echo "$1"
+ exit 0
+fi
+
+if [ "$1" -lt "$3" ]; then
+ [ 0 -gt "$2" ] && exit 1
+ i="$1"
+ while [ "$3" -ge "$i" ]; do
+ echo "$i"
+ i=$(($i + $2))
+ done
+ exit 0
+fi
+
+[ "$2" -gt 0 ] && exit 1
+i="$1"
+while [ "$i" -ge "$3" ]; do
+ echo "$i"
+ i=$(($i + $2))
+done
+exit 0