#! @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/>.

# simple arguments
echo one two three
echo "one two three"
echo 'one two three'
 echo "one two three"
   echo "one two three"
	echo "one two three"

# empty arguments
echo a "" b
echo a '' b

echo a $foo b
echo a ${foo} b

echo a "$foo" b
echo a "${foo}" b

# multi-part arguments
echo one"two"three
echo one${two}three
echo one"two"$three

echo one'two'three
echo one${two}three
echo one'two'$three

echo one'two'three"four"five${six}seven$eight


foo=bar
echo $foo ${foo}
echo "$foo" "${foo}"
echo '$foo' '${foo}'
echo a$foob a${foo}b
echo ab"cd"ef$foo'gh'ij${foo}kl\ mn\"op\'qr\$st\(uv\<wx\>yz\)

foo=c
bar=h
echo e"$foo"${bar}o
e"$foo"${bar}o hello world

foo=echo
$foo 1234

echo "one
"
echo "one
\""
echo "one
two"

echo one"two
"three
echo one"two
\""three
echo one"two
\"three\"
four"


echo 'one
'
echo 'one
\'
echo 'one
two'
echo one'two
'
echo one'two
\'
echo one'two
\'three

echo "one\
"
echo "one\
\""
echo "one\
two"

# echo "one\
# two"
# echo 'one\
# two'
# echo foo\
# bar
# \
# echo foo
# echo "one
#
# two"

echo "one
 "
echo "one
 \""
echo "one
 two"

echo one"two
 "three
echo one"two
 \""three
echo one"two
\"three\"
 four"
	
echo 'one
 '
echo 'one
 \'
echo 'one
 two'
echo one'two
 '
echo one'two
 \'
echo one'two
 \'three

echo "one\
 "
echo "one\
 \""
echo "one\
 two"

echo one \
 two

echo one x\
 two

echo one x\
"x" two
echo one x\
'x' two
echo one x\
\\ two

echo one x\
\
x

echo one x\



echo one x\
;

echo one x\
$var


if test x$grubshell = xyes; then insmod regexp; fi
echo /boot/grub/i386-pc/normal.mod
echo x\\y
echo x\*y
echo x\\
echo x\\\\
echo x\\\\y


