免费注册 查看新帖 |

Chinaunix

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

困扰我一天了:linux下,在perl中调用find命令的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-17 17:37 |只看该作者 |倒序浏览
【描述】用Called.pl搜索上上级目录的一个文件:td710_lov.mak
Called.pl的路径:.../AAA/BBB/CCC/Called.pl
td710_lov.mak的路径:.../AAA/td710_lov.mak

在Called.pl中有一条语句:@paths = `find ../../AAA  -name td710_lov.mak`,用于在AAA目录下查找td710_lov.mak并返回其路径。
发现若以“perl Called.pl”独立执行脚本时,可以返回正确的@paths。

【问题】
由于是自动化编译,所以Called.pl是被自动调用的(可能是shell、perl、甚至make文件中被调用)。此时就出错了!错误信息:
find:·../../AAA':没有那个文件或目录。
【原因分析】
是否自动执行时就无法识别出“..”了?
请教大家:如何解决该问题,或者提供下思路。
非常感谢!

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2013-07-17 17:46 |只看该作者
本帖最后由 grshrd49 于 2013-07-17 17:56 编辑

我猜想因该是这样的
当用户来运行perl脚本的时候,当然了 你这里是Called.pl这个文件,脚本当前的工作目录就是该文件所在的目录
如果你用其他程序来调用perl脚本的时候 工作目录就不是被调脚本本身了,所以不能设置相对路径。

是不是这个道理?求大牛深入分析

论坛徽章:
0
3 [报告]
发表于 2013-07-17 23:13 |只看该作者
应该是相对路径问题,尝试用绝对路径看看。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
4 [报告]
发表于 2013-07-17 23:20 |只看该作者
grshrd49 发表于 2013-07-17 13:46
我猜想因该是这样的
当用户来运行perl脚本的时候,当然了 你这里是Called.pl这个文件,脚本当前的工作目录 ...

分析深入,感谢大牛 {:3_188:}

论坛徽章:
0
5 [报告]
发表于 2013-07-18 12:49 |只看该作者
回复 2# grshrd49
确实如你所说!
我使用“use Cwd;$current_dir =getcwd;”的方法打印出的当前目录,发现当自动执行时确实跑到另一个目录。
解决问题的方法当然就太简单了。 嘿嘿。
非常感谢你的提示~~


   

论坛徽章:
0
6 [报告]
发表于 2013-07-18 13:27 |只看该作者
感谢各位Perler的给力支持~~

论坛徽章:
0
7 [报告]
发表于 2013-07-18 13:28 |只看该作者
回复 4# rubyish
问题解决啦,嘿嘿~~

   

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
8 [报告]
发表于 2013-07-20 04:13 |只看该作者
感谢大牛,解决问题~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP