免费注册 查看新帖 |

Chinaunix

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

perl调用shell的问题 [复制链接]

论坛徽章:
0
发表于 2007-07-05 18:24 |显示全部楼层
用perl执行一些ls rm cp等shell命令的时候,例如:rm -f $file,如果$file中含有一些特殊字符,例如$ \之类的,则必须要将$file中的内容替换成\\ \$
所以想请教有没有什么方法来避免perl调用shell中这种不必要的麻烦
或者直接采用perl内置函数呢?
谢谢

论坛徽章:
0
发表于 2007-07-05 18:32 |显示全部楼层
quotemeta

论坛徽章:
0
发表于 2007-07-05 20:09 |显示全部楼层
原帖由 nkcsx 于 2007-7-5 18:32 发表
quotemeta

quotemeta应该和\Q的功能差不多,但是如果文件中含有t'.txt这样的特殊文件还是会删除不掉呀,有没有加单引号的函数或者方法,除了正则匹配。

  1. my @files = `ls -F /tmp`;
  2. foreach my $file (@files){
  3.     print "rm -f \Q$file\E\n";
  4.     `rm -f "\Q$file\E"`;
  5. }
复制代码

论坛徽章:
0
发表于 2007-07-05 23:36 |显示全部楼层
Copy的时候有像unlink一样的函数吗?

论坛徽章:
0
发表于 2007-07-06 10:05 |显示全部楼层
Try File::Copy

论坛徽章:
0
发表于 2007-07-06 10:28 |显示全部楼层
原帖由 nkcsx 于 2007-7-6 10:05 发表
Try File::Copy

Good idea!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP