紧急求助 请大家帮忙看看以下的shell的问题。

紧急求助 请大家帮忙看看以下的shell的问题。

下面这个shell是用来删除文件dept.lst 里的前后的多余的行。
我copy出来可以运行,写成shell运行却提示错误,不知道是什么问题,
困扰我很长时间了
#!/bin/sh
lines=`wc -l dept.lst | awk '{print $1}'`
taillines=`expr $lines - 1`
tail -$taillines dept.lst > dept.lst.tmp
headlines=`expr $taillines - 3`
head -$headlines dept.lst.tmp > 1.txt
rm -f dept.lst.tmp

上面shell保存文件名字del_line
sh del_line.sh
   报错信息:
expr: non-numeric argument
tail: invalid option --
Try 'tail --help' fro more information
expr: non-numeric argument
head: invalid option --
Try 'head --help' fro more information
:command not found:
:command not found:

是什么原因呢      
dept.lst里行的问题
如果是个空文件
或是行数不够多
将产生错误      
[quote=catholicity_zqp]紧急求助 请大家帮忙看看以下的shell的问题[/quote]
欢迎我们的新朋友 catholicity_zqp

catholicity_zqp: 建议先看看置顶的几个帖子      
谢谢,在vi编辑器里面直接把命令敲一变,然后运行就可以了