aboutsummaryrefslogtreecommitdiffstats
path: root/examples/scripts.v2/repeat
diff options
context:
space:
mode:
Diffstat (limited to 'examples/scripts.v2/repeat')
-rw-r--r--examples/scripts.v2/repeat121
1 files changed, 0 insertions, 121 deletions
diff --git a/examples/scripts.v2/repeat b/examples/scripts.v2/repeat
deleted file mode 100644
index b6fccac..0000000
--- a/examples/scripts.v2/repeat
+++ /dev/null
@@ -1,121 +0,0 @@
-#! /bin/bash
-#
-# original from:
-# repeat: repeat a command.
-# @(#) repeat.ksh 1.1 93/06/03
-# 90/05 john h. dubois iii (john@armory.com)
-# 90/11 added help
-# 93/06/03 Added s, h, p, and v options
-#
-# conversion to bash v2 syntax done by Chet Ramey
-
-istrue()
-{
- test 0 -ne "$1"
-}
-
-isfalse()
-{
- test 0 -eq "$1"
-}
-
-phelp()
-{
-echo "$name: repeatedly execute a command line.
-$Usage
-commandline is executed once for each integer from startcount through endcount
-inclusive. The default for startcount is 1 if a positive endcount or no
-endcount is given, and -1 if a negative endcount is given. A count
-parameter consisting of a single number is taken to be an endcount. If
-only an endcount is given and it is positive, commandline is executed
-endcount times. endcount may be less than startcount. If no endcount is
-given (e.g. a count parameter of \"10-\"), commandline execution repeats
-indefinitely with the iteration variable incrementing in a positive
-direction. A count parameter of consisting of \"-\" will repeat
-indefinitely starting with 1.
-
-Note that quoting and variables in commandline are interpreted twice, once
-when it is passed to the repeat command, and once when it is actually executed.
-
-The iteration variable is \"count\". If \$count is used in commandline, make
-sure it is quoted with ' or \.
-
-Options:
--h: Print this help.
--p: Print value of iteration variable on stderr before each iteration.
--s <sec>: sleep for <sec> seconds after each iteration except the last.
--v: Print start and end values before beginning."
-}
-
-name=${0##*/}
-Usage="Usage: repeat [-hpv] [-s <sec>] [[startcount]-][endcount] command [arg ...]"
-
-typeset -i count=1 forever=0 sleep=0 print=0 verbose=0
-
-while getopts :0123456789hpvs: opt; do
- case $opt in
- h) phelp; exit 0;;
- s) sleep=$OPTARG || exit 1;;
- p) print=1;;
- v)verbose=1;;
- [0-9]) break;;
- +?) echo "$name: options should not be preceded by a '+'." 1>&2; exit 2;;
- ?) echo "$name: $OPTARG: bad option. Use -h for help." 1>&2; exit 2;;
- esac
-done
-
-# remove args that were options
-shift $((OPTIND-1))
-
-if [ $# -lt 2 ]; then
- echo -e "$Usage\nUse -h for help." 1>&2
- exit 2
-fi
-
-case "$1" in
--[0-9]*-|[0-9]*-)
- # Start value only
- count=${1%-}
- forever=1
- end="-1";
- ;;
--[0-9]*-[0-9]*|[0-9]*-[0-9]*)
- # Start and end value
- s=${1%-}
- end=${s##[0-9]*-}
- count=${s%-$end}
- ;;
--[0-9]*|[0-9]*)
- end=$1
- case "$end" in
- -\*) count=-1;;
- esac
- ;;
--)
- forever=1
- end="-1";
- ;;
-*)
- echo "$name: bad count parameter: $1" 1>&2
- exit 1
- ;;
-esac
-
-shift
-
-[ -z "$end" ] && [ $count -le "$end" ] && increment=1 || increment=-1
-
-istrue $verbose && echo "start=$count end=$end" 1>&2
-
-# Need to do this here so that up to this point, -0 will keep the leading -
-# and end will not be 0 if no value assigned
-typeset -i end
-
-let end+=increment # make loop inclusive of original endcount
-
-while istrue $forever || [ $count -ne $end ]; do
- istrue $print && echo $count 1>&2
- eval "$@"
- istrue $sleep && sleep $sleep
- let count+=increment
-done