有多个perl脚本从CYGWIN终端运行。一个例子是
$ perl IdGeneratorTool.pl JSmith -i userInfo.adb -o JSmith.txt
以上就是一个例子。基于输入参数JSmith,它读取一个数据库文件,生成一个ID并将其输出到一个文本文件。
现在,这些在CYGWIN上运行的perl脚本不断增长,并将其添加到如下所示的文本文件中
$ perl IdGeneratorTool.pl JSmith -i userInfo.adb -o JSmith.txt
$ perl IdGeneratorTool.pl PTesk -i userInfo.adb -o PTesk.txt
$ perl IdGeneratorTool.pl CMorris -i userInfo.adb -o CMorris.txt
$ perl IdGeneratorTool.pl JLawrence -i userInfo.adb -o JLawrence.txt
$ perl IdGeneratorTool.pl TCruise -i userInfo.adb -o TCruise.txt
...
....
......
.......
.........
而且这个名单还在不断增加。
我想知道是否有一种方法可以一次性执行文本文件中的所有perl脚本。
我是perl的新手,对选项不太了解。
一个理想的场景可能是,一个工具,我可以打开这个文本文件,单击执行按钮,然后它执行所有脚本,并将多个*.txt文件输出到同一目录中。
或者一个简单的perl脚本就可以做到这一点
- 将它们放入文件
makeall
(或任何您想调用的文件(中 - 将
#!/bin/bash
作为第一行放入文件 - 在cygwin中输入
chmod +x makeall
- 在cygwin中输入
./makeall
有了这个,您就创建了一个bash脚本,它将完成您对perl脚本的所有调用。
另一种选择是将所有用户信息放入csv文件中,然后读取该文件,以便调用脚本。
等等!更容易!
将以下内容放入makeall
脚本中:
#!/bin/bash
for user in
JSmith
PTesk
CMorris
JLawrence
TCruise
; do
perl IdGeneratorTool.pl "$user" -i userInfo.adb -o "$user".txt
done
现在,您只需要像我为您的示例所做的那样添加任何其他用户。
如果看不到IdGeneratorTool.pl
的来源,很难给出任何具体的建议;但一般来说,像这样的东西并不难
do_stuff($ARGV[0], $opt_i, $opt_o);
进入
while (<>) {
chomp;
$user, $adb, $outputfile = split('t');
do_stuff($user, $adb, $outputfile);
}
从制表符分隔的文件而不是从命令行参数读取输入。
您可以创建带有用户列表的文本文件(每行一个(,例如user_list.txt
JSmith
PTesk
CMorris
JLawrence
TCruise
然后在同一目录中创建bash脚本process_list.sh
#!/bin/bash
for user in `cat user_list.txt`
do
perl IdGeneratorTool.pl $user -i userInfo.adb -o ${user}.txt
done
现在让bash脚本可执行chmod +x process_list.sh
,它就可以执行了。
一旦您需要添加新用户,请编辑user_list.txt以在文件中再添加一行。
北极熊