system()问题

发布于 2022-10-15 08:13:39 字数 178 浏览 21 评论 0

为什么我用system()调用一个shell脚步a.sh,总是提示:
a.sh: line 1: lsof: command not found
(我的shell脚步是lsof命令。)
调用system的程序和脚本不是放在一个目录下。程序在/usr/bin下,脚本在/usr/sbin下。这个有影响吗。
谢谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

雨的味道风的声音 2022-10-22 08:13:39

应该没有影响。

雨巷深深 2022-10-22 08:13:39

回复 2# whaaat

    那你知道为什么会说没有那个命令吗?

独夜无伴 2022-10-22 08:13:39

回复 3# umdd0210
1你确认能否直接执行lsof
2确认能够直接执行a.sh

懒猫 2022-10-22 08:13:39

回复 4# whaaat

嗯,能直接执行lsof,也能直接执行a.sh
而且我在/usr/sbin下的程序可以调用a.sh
所以不知道为什么别的目录下的程序,无法调用a.sh

浅浅淡淡 2022-10-22 08:13:39

回复 5# umdd0210
你的system调用怎么写的?

咽泪装欢 2022-10-22 08:13:39

回复 6# whaaat

定义了SH_PATH="/usr/sbin/a.sh"
system调用时写的:system(SH_PATH);

我刚才试了,把/usr/bin下的程序放到/usr/sbin下,还是不行。。。。你说的对,不是路径的问题。。。。
那还有什么原因么。。。。

一枫情书 2022-10-22 08:13:39

回复 7# umdd0210
我在我的环境下试一试是可以的。

撕心裂肺的伤痛 2022-10-22 08:13:39

简单的做法,调用lsof的时候,使用绝对路径;要么就在a.sh中设置PATH环境变量

情愿 2022-10-22 08:13:39

回复 8# whaaat

    我在/usr/bin下的那个程序直接写成:
system("lsof....");
它还是提示command not found。。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文