#! /bin/sh
# Usage : ./crontabintf
1: set -f 2: choice=0
3: while [ 0 ] 4: do
5: 6: echo "1.Display crontab jobs."
7: 8: echo "2.Insert a job."
9: 10: echo "3.Remove a job."
11: 12: echo "4.Exit."
13: 14: echo -n "Select>"
15: 16: read choice
17: 18: case $choice in
19: 20: 1) line=1
21: 22: crontab -l > $HOME/.jobs
23: 24: res="`wc -l $HOME/.jobs`"
25: 26: set - $res;lines=$1;
27: 28: while [ $line -le $lines ]
29: 30: do
31: 32: res="`head -$line $HOME/.jobs | tail -1`"
33: 34: set - $res;disp=" ";
35: 36: for arg
37: 38: do
39: 40: if [ "$arg" = '*' ]
41: 42: then
43: 44: disp="$disp Any"
45: 46: else
47: 48: disp="$disp $arg"
49: 50: fi
51: 52: done
53: 54: set - $disp
55: 56: echo "JOB $line-->"
57: 58: echo "minute: $1";shift;
59: 60: echo "Hour: $1";shift;
61: 62: echo "Date: $1/$2";shift;shift;
63: 64: echo "Day of week: $1";shift;
65: 66: echo "Command:$*"
67: 68: line=`expr $line + 1`
69: 70: done;;
71: 72: 2) crontab -l >$HOME/.newjobs
73: 74: selection=0
75: 76: minutes="any"
77: 78: hours="any"
79: 80: monthday="any"
81: 82: month="any"
83: 84: weekday="any"
85: 86: while [ $selection -ne 7 ]
87: 88: do
89: 90: echo "1.Set the command(-obligatory):"
91: 92: echo "Set periodicity of command."
93: 94: echo "2.Set minutes:0-59"
95: 96: echo "3.Set hours:0-23"
97: 98: echo "4.Set day of month:1-31"
99: 100: echo "5.Set month:1-12"
101: 102: echo "6.Set day of week:Mon-Sun"
103: 104: echo "7.Ready."
105: 106: echo -n "Enter>"
107: 108: read selection
109: 110: case $selection in
111: 112: 1)echo -n "Enter>"
113: 114: read command;;
115: 116: 2) echo -n "If more than one choice,seperate by comma..Enter>"
117: 118: read minutes;;
119: 120: 3) echo -n "If more than one choice,seperate by comma..Enter>"
121: 122: read hours;;
123: 124: 4) echo -n "If more than one choice,seperate by comma..Enter>"
125: 126: read monthday;;
127: 128: 5) echo -n "If more than one choice,seperate by comma..Enter>"
129: 130: read month;;
131: 132: 6) echo -n "If more than one choice,seperate by comma..Enter>"
133: 134: read weekday;;
135: 136: 7) break;;
137: 138: *) continue;;
139: 140: esac
141: 142: done
143: 144: periodicity=" "
145: 146: for inst in $minutes $hours $monthday $month $weekday
147: 148: do
149: 150: if [ "$inst" = "any" ]
151: 152: then
153: 154: periodicity="$periodicity *"
155: 156: else
157: 158: periodicity="$periodicity $inst"
159: 160: fi
161: 162: done
163: 164: echo "$periodicity $command">>$HOME/.newjobs
165: 166: crontab $HOME/.newjobs;;
167: 168: 3) crontab -l >$HOME/.jobs
169: 170: echo "Job to remove"
171: 172: echo -n "Enter Job's number as listed above>"
173: 174: read jobnmb
175: 176: res="`wc -l $HOME/.jobs`"
177: 178: set - $res;
179: 180: rest=`expr $1 - $jobnmb`
181: 182: jobnmb=`expr $jobnmb - 1`
183: 184: head -$jobnmb $HOME/.jobs | cat >$HOME/.njobs
185: 186: tail -$rest $HOME/.jobs | cat >>$HOME/.njobs
187: 188: crontab $HOME/.njobs;;
189: 190: 4) rm $HOME/.jobs $HOME/.newjobs
191: 192: exit;;
193: 194: *) continue;;
195: 196: esac
197: 198: done