免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2231 | 回复: 0
打印 上一主题 下一主题

perl命令行应用实例:批量安装某类模块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-04 11:38 |只看该作者 |倒序浏览
比如要安装全部Acme类的模块, 有349个, 手工一个个安装会死人的, 就用perl来实现自动安装.

第一步:
用命令perl -e 'use CPAN;CPAN::Shell->m("/Acme/");'来取得Acme相关的模块列表,得到下面的输出:
.................
Module   Acme::Yoda             (GREP/Acme-Yoda-0.02.tar.gz)
Module   Acme::Your             (RCLAMP/Acme-Your-0.01.tar.gz)
Module   Acme::Your::Filter     (RCLAMP/Acme-Your-0.01.tar.gz)
Module   Acme::emcA             (AUTRIJUS/Acme-emcA-0.10.tar.gz)
Module   Acme::l33t             (Acme::l33t)
Module   Acme::landmine         (DAVIDNICO/Acme/Acme-landmine-1.00.tar.gz)
Module   Acme::please           (DAVIDNICO/Acme/Acme-please-0.01.tar.gz)
Module   Acme::speeed           (MEMOWE/Acme-speeed-1.00.tar.gz)
Module   Acme::use::strict::with::pride (NWCLARK/Acme-use-strict-with-pride-0.04.tar.gz)
Module   Catalyst::Plugin::Acme::Scramble (ASHLEY/Catalyst-Plugin-Acme-Scramble-0.02.tar.gz)
349 items found

第二步:
用perl来处理输出的结果:
perl -e 'use CPAN;CPAN::Shell->m("/Acme/");' | \
perl -nle '@a=split /\s+/;print "perl -MCPAN -e\"install $a[1]\"" if $_=~ /Acme/i'
得到类似下面的输出结果:
............................................................
perl -MCPAN -e"install Acme::landmine"
perl -MCPAN -e"install Acme::please"
perl -MCPAN -e"install Acme::speeed"
perl -MCPAN -e"install Acme::use::strict::with::pride"
perl -MCPAN -e"install Catalyst::Plugin::Acme::Scramble"

最终的命令:
最后吧输出的结果传给shell执行就可以了:
perl -e 'use CPAN;CPAN::Shell->m("/Acme/");' | \
perl -nle '@a=split /\s+/;print "perl -MCPAN -e\"install $a[1]\"" if $_=~ /Acme/i' | \
/bin/sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP