ITEM: AE9620L

Replacement script for "line -t"


Env: 

 AIX 3.2.5

Desc: 

 Customer is trying to write a script that will prompt for
 input from standard in, wait for 30 seconds, and then proceed
 with the script if no input has been received during this time.
 The customer has an OEM machine that allows him to use the -t
 flag with the line command.  This flag is not found on AIX, and 
 unfortunately, AIX can not do this via a command.  However,
 with the following scripts, you can accomplish the desired
 results.

 Please note that the following scripts are examples only.  They
 are provided as is and IBM does not provide technical support
 for these scripts.

 mytrap:

 \#
 \#!/bin/ksh 
 \# mytrap -- prompts the user for a value and prints the
 \# value entered, or, if no value was entered for 30
 \# seconds, prints a default value.
 \#
 trap ':' 30

 j=DEFAULT_VALUE                \# set up default value
 echo "Please enter a value: "  \# prompt for input
 touch pid.$$                   \# create a temporary file, pid.$$
 alarm $$ 30 &                  \# set an alarm for 30 seconds
 read i                         \# read stdin
 rm -f pid.$$                   \# remove the temporary file
 i=${i:=$j}                     \# if i=NULL then set to default
 echo "value = $i"              \# print out results

 alarm:

 \#!/bin/ksh 
 \#
 \# alarm - Sends a SIGUSR1 (signal 30) to the specified 
 \# process after the specified amount of time has expired.
 \# Syntax: alarm PID SECONDS
 \#
 sleep $2               \# sleep for specified \# of seconds
 if [ -f pid.$1 ]       \# send signal only if pid.$1 exists
 then
   kill -30 $1          \# send SIGUSR1 to process
 fi

 To run the above example, enter "mytrap".  The second script is
 called from the first one.  The alarm script waits 30 seconds.  
 After 30 seconds, the alarm script sends a signal 30 (SIGUSR1) 
 to mytrap if teh pid.$1 file exists. SIGUSR1 interrupts the read,
 causing i to be set to null.  The line "i=${i:=$j}" causes i to
 be set to the default value if it is null; otherwise, i retains
 its current value.  The last line of mytrap prints out the value
 of i.


Support Line: Replacement script for "line -t" ITEM: AE9620L
Dated: January 1995 Category: N/A
This HTML file was generated 99/06/24~13:30:28
Comments or suggestions? Contact us