#!/bin/ksh ########################################################################## # Title : sequence - print sequence of numbers # Author : Heiner Steven # Date : 1995-07-13 # Requires : # Category : Text Utilities # SCCS-Id. : @(#) sequence 1.2 03/12/19 ########################################################################## # Description # ########################################################################## PN=`basename "$0"` # program name VER='1.2' n=10 Start=1 Step=1 usage () { echo "$PN - print sequence of numbers, $VER (stv '95) usage: $PN [count] or $PN start count [step] Prints count numbers (default is $n) starting with start (default is $Start) increment step (default is $Step)" >&2 exit 1 } msg () { for i do echo "$PN: $i" >&2 done } fatal () { msg "$@"; exit 1; } set -- `getopt h "$@"` while [ $# -gt 0 ] do case "$1" in --) shift; break;; -h) usage;; -*) usage;; *) break;; # First number esac shift done case $# in 0) ;; # Use default values 1) n="$1";; 2) Start="$1"; n="$2";; 3) Start="$1"; n="$2"; Step="$3";; *) usage;; esac # Check numbers for number in "$n" "$Start" "$Step" do expr "$number" + 1 > /dev/null 2>&1 || fatal "no integer: $number" done FastMath=no [ 1+1 -eq 2 ] && FastMath=yes i=0 while [ $i -lt $n ] do if [ $FastMath = yes ] then echo "$((i*Step+Start))" ((i=i+1)) else expr $i \* $Step + $Start i=`expr $i + 1` fi done exit 0