Advertisement
stubborn_d0nkey

Shell function to repeat command

Feb 3rd, 2013
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.09 KB | None | 0 0
  1.  
  2. ######################
  3. ######################
  4. ### usage: rptr [-irc] commands
  5. ### usage: rptr [-i INTERVAL] [-r REPEAT] [-c] commands
  6. ### options:
  7. ### -i, --interval : time (in seconds) between repetions (default=2)
  8. ### -r, --repeat : number of times to repeat (default=indefinite)
  9. ### -c, --clear : clear output after each iteration
  10. #####################
  11. #
  12. #
  13. function rptr(){
  14.     interval=2
  15.     repeat=0
  16.     clr=false
  17.     OPTS=`getopt -o ci:r: -l clear,interval:,repeat: -- "$@"`
  18.    
  19.     if [ $? -ne 0 ];
  20.         then
  21.                 return 1
  22.         fi
  23.    
  24.     eval set -- "$OPTS"
  25.    
  26.     while true ; do
  27.         case "$1" in
  28.             -i|--interval) interval=$2; shift 2;;
  29.             -r|--repeat) repeat=$2; shift 2;;
  30.             -c|--clear) clr=true; shift;;
  31.             --) shift; break;;
  32.             *) break;;
  33.         esac
  34.     done
  35.     if [ $repeat -lt 1 ];
  36.     then
  37.         while true; do
  38.             ${@:1}
  39.             sleep $interval
  40.         if $clr
  41.         then
  42.             clear
  43.         fi
  44.         done
  45.     else
  46.         tmp=0
  47.         while [ $tmp -lt $repeat ]; do
  48.             ${@:1}
  49.             sleep $interval
  50.         if $clr
  51.         then
  52.             clear
  53.         fi
  54.             let tmp=tmp+1
  55.         done
  56.     fi
  57. }
  58. ####################################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement