免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6163 | 回复: 8

请教如何一次打多个patch [复制链接]

论坛徽章:
0
发表于 2009-02-07 20:00 |显示全部楼层
10可用积分
比如有一个patch列表文件:patch.list
里面包含多个patch的名字, 如下
a.patch
b.patch
c.patch

请问可否用命令一次将patch.list里包含的三个patch全部打上?

而不用分别执行:
patch -p1 < a.patch
patch -p1 < b.patch
patch -p1 < c.patch

请高手指点!!!

最佳答案

查看完整内容

awk '{print "patch -p1 < "$0; system("patch -p1 < "$0);}' patch.list

论坛徽章:
0
发表于 2009-02-07 20:00 |显示全部楼层
awk '{print "patch -p1 < "$0; system("patch -p1 < "$0);}' patch.list

论坛徽章:
0
发表于 2009-02-07 20:03 |显示全部楼层
while read line ;do patch -p1 < $line ;done <patch.list

论坛徽章:
0
发表于 2009-02-07 20:23 |显示全部楼层
原帖由 我是DBA 于 2009-2-7 20:03 发表
while read line ;do patch -p1 < $line ;done  

哈哈~~刚试过了,有用,多谢兄台!!!!

论坛徽章:
0
发表于 2009-02-07 20:33 |显示全部楼层
原帖由 皇家救星 于 2009-2-7 20:18 发表
awk '{print "patch -p1 < "$0; system("patch -p1 < "$0);}' patch.list

哈哈~~
刚试了这个方法也有效,并且输出的LOG上有所打的每个patch的提示信息,方便调试。
多谢各位高手啊!:)

论坛徽章:
0
发表于 2009-02-07 20:44 |显示全部楼层
sed 's/^/path -p1 </g' ufile |sh

论坛徽章:
0
发表于 2009-02-07 23:30 |显示全部楼层
原帖由 我是DBA 于 2009-2-7 20:03 发表
while read line ;do patch -p1 < $line ;done  

这个的抄下来,以后用的上啊

论坛徽章:
0
发表于 2009-02-08 15:08 |显示全部楼层
多谢楼上两位高手,不过我发现还有一个问题。
执行这两条命令时
while read line ;do patch -p1 < $line ;done <patch.list

awk '{print "patch -p1 < "$0; system("patch -p1 < "$0);}' patch.list
都需要patch.list里包含的 patch文件必须存在于当前目录,不在的话会提示找不到patch文件的错误信息。

有没有办法执行命令时同时指定patch.list里包含的这些patch所在的位置?
还请高人再指点一下!

论坛徽章:
0
发表于 2009-02-08 15:22 |显示全部楼层

回复 #8 dongas 的帖子

可以啊,你把路径加上就行。。。。
sed 's#^#path -p1 <路径#g'  patch.list|sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP