# This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # test function calling in nofork comsubs set -- 1 2 3 func() { echo "$@" } x=${ func a b c; } echo "$x" == "$@" x=${ func; } echo "$x" == "$@" unset -f func func() { echo before return return 12 echo after return } x=${ func; echo after func; } echo "$x" unset -f func unset x set -- # more shift and order-of-expansion tests set -- 1 2 3 echo "$*${ set -- a b c;}$*" set -- 1 2 x=${ shift; echo "$@"; } echo $x "$@" # order of expansion echo "${ IFS= ; echo foo; }${ unset IFS; echo bar;}${ IFS=' '; echo a b c;}" declare -p IFS IFS=$' \t\n' : ${TMPDIR:=/tmp} TDIR=$TMPDIR/comsub24-$$ [ -d "${TDIR}" ] || mkdir "${TDIR}" cd "${TDIR}" || { echo "comsub24: cannot cd to ${TDIR}" exit 2 } touch xx yy zz echo "${ set -f; echo '*';}${ set +f; echo '???'; }" echo ${ set -f; echo '*';}${ set +f; echo '???'; } rm xx yy zz touch xx yyy zzzz echo ${ set -f; echo '*';}${ set +f; echo '???'; } cd $OLDPWD rm -rf $TDIR