1# This program is free software: you can redistribute it and/or modify 2# it under the terms of the GNU General Public License as published by 3# the Free Software Foundation, either version 3 of the License, or 4# (at your option) any later version. 5# 6# This program is distributed in the hope that it will be useful, 7# but WITHOUT ANY WARRANTY; without even the implied warranty of 8# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9# GNU General Public License for more details. 10# 11# You should have received a copy of the GNU General Public License 12# along with this program. If not, see <http://www.gnu.org/licenses/>. 13# 14# check saving and restoring positional parameters around function calls 15 16f() 17{ 18 echo $FUNCNAME: "$@" 19} 20 21f1() 22{ 23 f {1..50} 24 echo $FUNCNAME: after: $@ 25} 26 27set -- {1..100} 28 29f1 {1..20} 30echo done: $@ 31 32f3() 33{ 34 echo $FUNCNAME:$1 35 shift 36 if [ $# -le 0 ]; then 37 return 38 fi 39 f3 "$@" 40} 41 42f3 {1..20} 43 44# now let's try source with and without positional parameters 45 46set -- {1..20} 47echo before source: "$@" 48. ./varenv15.in 49echo after source 1: "$@" 50. ./varenv15.in one two three four five six seven eight nine ten 51echo after source 2: "$@" 52