一个简单的shell看看有何错误?

一个简单的shell看看有何错误?

cat 1.sh
hello()
{ echo "heloo ddd" }
echo "I love you"
hello
echo "me too"
sh 1.sh
1.sh: line 6: syntax error: unexpected end of file      
if [ $# -lt 3 ] ; then echo "hi 'basename $0' 1 2 3 "
exit 1
fi
echo "arg1: $1"
echo "arg2: $2"
echo "arg3: $3"

其中exit 1 是什么意思?
如果给的参数少于3个为什么不执行最后的3个echo,为什么当参数大于等于3个才执行?      
判断一个目录是否为空的shell
emacs aaa
b=$1
if [ " 'ls -A $b' " == "" ]
then
   echo "$b is indeed empth"
else
   echo "$b is not empty"
fi
sh aaa ./fff
当前目录下没有fff这个目录,它怎么会显示fff is not empty???      
[QUOTE=tian1118]cat 1.sh
hello()
{ echo "heloo ddd" }
echo "I love you"
hello
echo "me too"
sh 1.sh
1.sh: line 6: syntax error: unexpected end of file[/QUOTE]
复制内容到剪贴板
代码:
hello()
{
    echo "heloo ddd"
}

echo "I love you"

hello

echo "me too"
      
建议发贴之前先学学 shell 基础的东西      
这个就是基础呀.
真是搞不懂,
hello()
{ echo "heloo ddd" }
echo "I love you"
hello
echo "me too"

hello()
{
    echo "heloo ddd"
}

echo "I love you"

hello

echo "me too"
是一样的嘛,怎么结果不一样呢???      
本论坛有shell基础书籍或文章吗?      
链接:blackspace 提供的 bash 宝典      
怎么没有中文版本的???      
晕! 怎么都要中文的?