1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
# 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 <http://www.gnu.org/licenses/>.
#
# 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
|