usage() {
echo
- echo "Usage: $0 [-h|--help] [-t|--timeout <value>] [-f|--file] [-p|--ping] <data>"
+ echo "Usage: $0 [-h|--help] [-t|--timeout <value>] [-f|--file <file>] [-p|--ping] [operation] "
echo
- echo " -h|--help: this usage help."
- echo " -t|--timeout: timeout for operation in seconds."
- echo " Defaults to $TIMEOUT__dflt seconds if not provided."
- echo
- echo " -f|--file: the parameter 'data' will be interpreted as a file"
- echo " with one operation per line. If missing, it will be"
- echo " a single operation string."
- echo
- echo " -p|--ping: Check the target process id."
- echo " Returns 1 (dead) or 0 (alive)."
- echo
- echo " data: operation string or file with several operations."
+ echo " -h|--help: this usage help."
+ echo " -t|--timeout <value>: timeout for operation in seconds."
+ echo " Defaults to $TIMEOUT__dflt seconds if not provided."
+ echo " -f|--file <file>: file with one operation per line (comments # allowed)."
+ echo " -p|--ping: Check the target process id."
+ echo " Returns 1 (dead) or 0 (alive)."
+ echo " operation: quoted operation string. Will be ignored if file"
+ echo " option is present. It is a positional argument"
+ echo " (the last one) when present."
echo
echo " For example:"
echo " $0 help"
parse_arguments() {
is_file=
timeout=$TIMEOUT__dflt
- data=
+ file=
+ operation=
ping=
while [ $# -gt 0 ]; do
- case $1 in
+ case "$1" in
-h|--help)
usage
;;
-f|--file)
is_file=yes
- data=$2
- [ -z "$data" ] && _exit "Missing file"
- [ ! -f "$data" ] && _exit "Can't found provided file '$data'."
+ file="$2"
+ [ -z "$file" ] && _exit "Missing file"
+ [ ! -f "$file" ] && _exit "Can't found provided file '$file'."
shift
;;
*)
first=$(echo $1 | cut -c1)
[ "$first" = "-" ] && _exit "Unsupported script option: $1. Type '$SCR_BN -h' (or --help) to print the available options."
- data=$1
+ operation="$@"
+ break
;;
esac
shift
done
- [ -z "$ping" -a -z "$data" ] && _exit "Missing data value"
+ [ -z "$is_file" -a -z "$operation" -a -z "$ping" ] && _exit "Missing operation or file with operations"
}
# $1: pid to check
# Send operation:
if [ -n "$is_file" ]
then
- cp $data sigusr2.in
+ cp $file sigusr2.in
else
- echo $data > sigusr2.in
+ echo $operation > sigusr2.in
fi
0>sigusr2.out
check_pid $PID