-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtry
More file actions
executable file
·50 lines (44 loc) · 1.05 KB
/
try
File metadata and controls
executable file
·50 lines (44 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
# Shayan Aslani, email: [email protected]
if [ $# -gt 0 ];then
echo "number of arguman is: $#"
else
echo "Usage:$0 [-i INTERVAL] [-n NUMBER] COMMAND"
exit 1
fi
TRY_INTERVAL_DEFAULT=5
TRY_NUMBER_DEFAULT=12
TRY_COMMAND=NULL
while [ -n "$1" ]
do
case "$1" in
-i) TRY_INTERVAL="$2"
echo "Found the -i option with parameter value $TRY_INTERVAL"
if ! [[ "$2" =~ ^[0-9]+$ ]];then
echo "$2 is not an integer"
exit 1
fi
shift;;
-n) TRY_NUMBER="$2"
echo "Found the -n option, with parameter value $TRY_NUMBER"
shift ;;
*) echo "command is: $*"
TRY_COMMAND=$*
break ;;
esac
shift
done
echo "interval: ${TRY_INTERVAL:-$TRY_INTERVAL_DEFAULT} \
number of try: ${TRY_NUMBER:-$TRY_NUMBER_DEFAULT} \
command: $TRY_COMMAND"
COUNT=0
while [[ $COUNT -ne ${TRY_NUMBER:-$TRY_NUMBER_DEFAULT} ]];do
$TRY_COMMAND
if [[ $? -eq 0 ]];then
exit 0
elif [[ $(( $COUNT +1 )) -eq ${TRY_NUMBER:-$TRY_NUMBER_DEFAULT} && $? -ne 0 ]];then
exit 1
fi
COUNT=$(( $COUNT +1 ))
sleep ${TRY_INTERVAL:-$TRY_INTERVAL_DEFAULT}
done