请高手指点一下一个批处理文件的写法

我刚试过,没有问题呀      
我是在solaris下,使用bourne shell只要把第一行改成#! /bin/sh 就好了,bourne shell应与bash是兼容的呀??不懂!      
这样试试:
$ ./foo.sh `cat arg.txt`
(注意是反引号)      
same      
搞定,不好意思,输入错误,test-commands 即[ ] 周围要有space非常感谢!!有空再交流!!thanks a lot!      
如果我想加如一个判断语句,如if [ -e lvs.rep ] ,  再进行循环的下一步,该如何实现??急      
哇,越来越复杂了!应该重新考虑这个问题的解决思路      
考虑到你的新需求,改用函数来实现:
1)vi foo.sh
复制内容到剪贴板
代码:
#! /bin/bash

function foo {
    while [ "$#" -gt 1 ]
    do
        old="$1"
        new="$2"
        sed -e "s:$old:$new:g" foo.txt > /tmp/foo.txt.tmp
        cat /tmp/foo.txt.tmp > foo.txt
        cat foo.txt
        shift
    done
}

[ -e foo.txt ] && foo $(cat arg.txt)
2)chmod u+x foo.sh

3)echo 1234567890 > foo.txt

4)echo "1 2 3 4 5 6 7 8 9 0" > arg.txt

5)./foo.sh
运行结果:
2234567890
3334567890
4444567890
5555567890
6666667890
7777777890
8888888890
9999999990
0000000000      
强啊,版主,我会好好研究一下,我这里SHELL的环境变量出了点问题,所以才有上述的想法,现在通过常规的方法已解觉(问题出在calibre lvs.com)这一环节上,不过你提供方法更吸引我,真很佩服你,非常感谢你的帮助,希望能常得到你的指导!!      
如果arg.txt中的参数是由换行符分隔而不是空格如何处理??