#!/bin/ksh ########################################################################## # Shellscript: sequence - print sequence of numbers # Version : 0.1 (beta) # Author : Heiner Steven (heiner.steven@odn.de) # Date : 13.07.95 # SCCS-Id. : $Id: sequence,v 1.1.1.1 1999/06/15 19:29:05 heiner Exp $ ########################################################################## # Description # ########################################################################## PN=`basename $0` # program name VER='0.1 (beta)' 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