请教如何一次运行批量脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
tongxiaobai
帖子: 8
注册时间: 2009-08-20 10:45

请教如何一次运行批量脚本

#1

帖子 tongxiaobai » 2009-11-02 11:30

我写了一些自动化脚本,放在testcase目录下
[tongxiaobai@autotest]$ ls testcase/
insert002.txt insert003.txt

然后我想用一个脚本start.sh来顺序执行这2个脚本,如下
[tongxiaobai@autotest]$ more bin/start.sh
#/bin/bash
TESTDIR=/home/tongxiaobai/autotest/
cd "$TESTDIR"testcase/
ls * >"$TESTDIR"bin/testcase.txt
xargs bash <"$TESTDIR"bin/testcase.txt

但是执行bash starat.sh时,只执行了bash insert002.txt脚本,insert003.txt没有执行,请帮忙看看怎么修改可以实现对testcase目录下所有问题顺序执行???多谢~~
头像
xzap
帖子: 256
注册时间: 2006-08-24 21:25

Re: 请教如何一次运行批量脚本

#2

帖子 xzap » 2009-11-02 19:51

这个不需要这么复杂的

代码: 全选

#/bin/bash
TESTDIR="~/autotest/"
cd "${TESTDIR}testcase/"
./insert002.txt
./insert003.txt
这样就可以了吧
如果是要遍历目录那么

代码: 全选

#/bin/bash
TESTDIR="~/autotest/"
cd "${TESTDIR}testcase/"
for i in *;do ./$i;done
如果是脚本的话后缀名最好不要用txt用sh比较好。还有记得脚本要运行都需要执行权限的,chmod +x 或者chmod 755
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 请教如何一次运行批量脚本

#3

帖子 aerofox » 2009-11-04 22:02

我比较赞成用 for 语句的办法。
至于楼主的问题(只执行了一个),那是因为 xargs 把几个脚本名都放到一个命令行了。 xargs 后加 -n 1 就可以了。
提供 xargs 的解决方案并不代表我赞成这种用法:)
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: 请教如何一次运行批量脚本

#4

帖子 tusooa » 2010-01-26 21:15

xzap 写了:这个不需要这么复杂的

代码: 全选

#/bin/bash
TESTDIR="~/autotest/"
cd "${TESTDIR}testcase/"
./insert002.txt
./insert003.txt
这样就可以了吧
如果是要遍历目录那么

代码: 全选

#/bin/bash
TESTDIR="~/autotest/"
cd "${TESTDIR}testcase/"
for i in *;do ./$i;done
如果是脚本的话后缀名最好不要用txt用sh比较好。还有记得脚本要运行都需要执行权限的,chmod +x 或者chmod 755
`~'不能加括号

代码: 全选

] ls -ld //
回复