#!/bin/sh # # Send a Hayes AT command to stdout and read an OK back. # - Cameron Simpson 15may2003 # postdelay= cmd=`basename "$0"` usage="Usage: $cmd [-d delay] Hayes-AT-command" badopts= while : do case $1 in -d) delay=$2; shift ;; -?*)echo "$cmd: unrecognised option: $1" >&2; badopts=1 ;; *) break ;; esac shift done if [ $# = 0 ] then echo "$cmd: missing Hayes-AT-command" >&2 badopts=1 fi [ $badopts ] && { echo "$usage" >&2; exit 2; } op=$* case "$op" in AT*) ;; *) op=AT$op ;; esac set -x echo "$op " [ $delay ] && sleep $delay while read ok do case "$ok" in '') : echo "$cmd: empty line" >&2 ;; OK) exit 0 ;; ERROR) : echo "$cmd: got \"ERROR\"" >&2; exit 1 ;; "$op") echo "$cmd: got echo \"$ok\"" >&2 ;; *) echo "$cmd: expected OK or ERROR or \"$op\", got \"$ok\"" >&2 ;; esac done echo "$cmd: read fails" >&2 exit 1