| #! @builddir@/grub-shell-tester |
| |
| # Run GRUB script in a Qemu instance |
| # Copyright (C) 2010 Free Software Foundation, Inc. |
| # |
| # GRUB 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. |
| # |
| # GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>. |
| |
| echo parameter count |
| function fcount { |
| echo fcount "$#" |
| } |
| |
| fcount |
| fcount a |
| fcount a b |
| |
| echo parameter count, with nesting |
| function ffcount { |
| echo ffcount "$#" |
| fcount |
| fcount a |
| fcount a b |
| } |
| |
| ffcount |
| ffcount 1 |
| ffcount 1 2 |
| |
| echo parameters |
| function fparam { |
| echo fparam 1 $1 |
| echo fparam 2 $2 |
| echo fparam 3 $3 |
| } |
| |
| fparam |
| fparam a |
| fparam a b |
| |
| echo parameters, with nesting |
| function ffparam { |
| echo ffparam 1 $1 |
| echo ffparam 2 $2 |
| echo ffparam 3 $3 |
| fparam |
| fparam a |
| fparam a b |
| } |
| |
| ffparam |
| ffparam 1 |
| ffparam 1 2 |
| |
| echo parameter expansion with specials |
| function fstar { |
| for f in $* |
| do |
| echo fstar $f |
| done |
| |
| for f in aaa$*bbb |
| do |
| echo fstar $f |
| done |
| } |
| |
| fstar |
| fstar a |
| fstar a "1 2" |
| fstar a "1 2" b |
| |
| function fdqstar { |
| for f in "$*" |
| do |
| echo fdqstar $f |
| done |
| |
| for f in aaa"$*"bbb |
| do |
| echo fdqstar $f |
| done |
| |
| for f in "aaa$*bbb" |
| do |
| echo fdqstar $f |
| done |
| } |
| |
| fdqstar |
| fdqstar a |
| fdqstar a "1 2" |
| fdqstar a "1 2" b |
| |
| function fat { |
| for f in $@ |
| do |
| echo fat $f |
| done |
| |
| for f in aaa$@bbb |
| do |
| echo fat $f |
| done |
| } |
| |
| fat |
| fat a |
| fat a "1 2" |
| fat a "1 2" b |
| fat a "1 2" b "c d" |
| fat a "1 2" b "c d" e |
| |
| function fdqat { |
| for f in "$@" |
| do |
| echo fdqat $f |
| done |
| |
| for f in aaa"$@"bbb |
| do |
| echo fdqat $f |
| done |
| |
| for f in "aaa$@bbb" |
| do |
| echo fdqat $f |
| done |
| } |
| |
| # fdqat # this case needs special handling, lets ignore till we really need it. |
| fdqat a |
| fdqat a "1 2" |
| fdqat a "1 2" b |
| fdqat a "1 2" b "c d" |
| fdqat a "1 2" b "c d" e |
| |