system()问题
为什么我用system()调用一个shell脚步a.sh,总是提示:
a.sh: line 1: lsof: command not found
(我的shell脚步是lsof命令。)
调用system的程序和脚本不是放在一个目录下。程序在/usr/bin下,脚本在/usr/sbin下。这个有影响吗。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
应该没有影响。
回复 2# whaaat
那你知道为什么会说没有那个命令吗?
回复 3# umdd0210
1你确认能否直接执行lsof
2确认能够直接执行a.sh
回复 4# whaaat
嗯,能直接执行lsof,也能直接执行a.sh
而且我在/usr/sbin下的程序可以调用a.sh
所以不知道为什么别的目录下的程序,无法调用a.sh
回复 5# umdd0210
你的system调用怎么写的?
回复 6# whaaat
定义了SH_PATH="/usr/sbin/a.sh"
system调用时写的:system(SH_PATH);
我刚才试了,把/usr/bin下的程序放到/usr/sbin下,还是不行。。。。你说的对,不是路径的问题。。。。
那还有什么原因么。。。。
回复 7# umdd0210
我在我的环境下试一试是可以的。
简单的做法,调用lsof的时候,使用绝对路径;要么就在a.sh中设置PATH环境变量
回复 8# whaaat
我在/usr/bin下的那个程序直接写成:
system("lsof....");
它还是提示command not found。。。。