1da2e3ebdSchin######################################################################## 2da2e3ebdSchin# # 3da2e3ebdSchin# This software is part of the ast package # 4*b30d1939SAndy Fiddaman# Copyright (c) 1982-2011 AT&T Intellectual Property # 5da2e3ebdSchin# and is licensed under the # 6*b30d1939SAndy Fiddaman# Eclipse Public License, Version 1.0 # 77c2fbfb3SApril Chin# by AT&T Intellectual Property # 8da2e3ebdSchin# # 9da2e3ebdSchin# A copy of the License is available at # 10*b30d1939SAndy Fiddaman# http://www.eclipse.org/org/documents/epl-v10.html # 11*b30d1939SAndy Fiddaman# (with md5 checksum b35adb5213ca9657e911e9befb180842) # 12da2e3ebdSchin# # 13da2e3ebdSchin# Information and Software Systems Research # 14da2e3ebdSchin# AT&T Research # 15da2e3ebdSchin# Florham Park NJ # 16da2e3ebdSchin# # 17da2e3ebdSchin# David Korn <dgk@research.att.com> # 18da2e3ebdSchin# # 19da2e3ebdSchin######################################################################## 20da2e3ebdSchinfunction err_exit 21da2e3ebdSchin{ 22da2e3ebdSchin print -u2 -n "\t" 23da2e3ebdSchin print -u2 -r ${Command}[$1]: "${@:2}" 24da2e3ebdSchin let Errors+=1 25da2e3ebdSchin} 26da2e3ebdSchinalias err_exit='err_exit $LINENO' 27da2e3ebdSchin 28da2e3ebdSchinCommand=${0##*/} 29da2e3ebdSchininteger Errors=0 3034f9b3eeSRoland Mainz 3134f9b3eeSRoland Mainztmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; } 3234f9b3eeSRoland Mainztrap "cd /; rm -rf $tmp" EXIT 3334f9b3eeSRoland Mainz 34da2e3ebdSchinPS3='ABC ' 35da2e3ebdSchin 3634f9b3eeSRoland Mainzcat > $tmp/1 <<\! 37da2e3ebdSchin1) foo 38da2e3ebdSchin2) bar 39da2e3ebdSchin3) bam 40da2e3ebdSchin! 41da2e3ebdSchin 42da2e3ebdSchinselect i in foo bar bam 43da2e3ebdSchindo case $i in 44da2e3ebdSchin foo) break;; 45da2e3ebdSchin *) err_exit "select 1 not working" 46da2e3ebdSchin break;; 47da2e3ebdSchin esac 48da2e3ebdSchindone 2> /dev/null <<! 49da2e3ebdSchin1 50da2e3ebdSchin! 51da2e3ebdSchin 52da2e3ebdSchinunset i 53da2e3ebdSchinselect i in foo bar bam 54da2e3ebdSchindo case $i in 55da2e3ebdSchin foo) err_exit "select foo not working" 2>&3 56da2e3ebdSchin break;; 57da2e3ebdSchin *) if [[ $REPLY != foo ]] 58da2e3ebdSchin then err_exit "select REPLY not correct" 2>&3 59da2e3ebdSchin fi 60da2e3ebdSchin ( set -u; : $i ) || err_exit "select: i not set to null" 2>&3 61da2e3ebdSchin break;; 62da2e3ebdSchin esac 6334f9b3eeSRoland Mainzdone 3>&2 2> $tmp/2 <<! 64da2e3ebdSchinfoo 65da2e3ebdSchin! 66*b30d1939SAndy Fiddaman 67*b30d1939SAndy Fiddamanexit $((Errors<125?Errors:125)) 68