return.sh revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin########################################################################
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# This software is part of the ast package #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# Copyright (c) 1982-2007 AT&T Knowledge Ventures #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# and is licensed under the #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# Common Public License, Version 1.0 #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# by AT&T Knowledge Ventures #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# A copy of the License is available at #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# Information and Software Systems Research #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# AT&T Research #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# Florham Park NJ #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# David Korn <dgk@research.att.com> #
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin########################################################################
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# test the behavior of return and exit with functions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin then return $2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin then exit $2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin then return $2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin then exit $2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin [[ $foo = EXIT ]] || err_exit "foo "$@" : exit trap not set"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin if [[ -f $file ]]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin(return 35)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin[[ $bar = EXIT ]] || err_exit "foo 2 0: bar exit trap not set"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin[[ $bar = EXIT ]] || err_exit "foo 2 3: bar exit trap not set"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthen err_exit "return in dot script is $ret should be 3"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin# next line should fail and cause an exit
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinprint -r -- "$0"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif [[ $x != $0 ]]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinx=$($SHELL -i 2> /dev/null <<\!
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chintypeset -i x=1/0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif [[ $x != hello ]]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthen err_exit "interactive shell terminates with error in bltin"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinx=$( set -e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinif [[ $x != '' ]]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthen err_exit "set -e doesn't terminate script on error"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinx=$( set -e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthen err_exit "exit 0 in trap should doesn't set exit value to 0"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthen err_exit "exit 8 in trap should set exit value to 8"