【问题标题】:Invoking a C executable with two parameters from a Script从脚本调用带有两个参数的 C 可执行文件
【发布时间】:2013-09-02 07:47:11
【问题描述】:

我想调用一个带有两个参数的 C 可执行文件,两个参数都是来自脚本的字符串类型。我正在使用busybox shell。每当插入 USB 设备时,都会调用一个脚本。现在我想从那个脚本调用我的 C 可执行文件。我尝试用/usr/bin/myExecutable param1 param2 & 调用它,但没有用。它没有被调用。如何从busybox shell 脚本调用C 可执行文件?

【问题讨论】:

  • 几乎整个操作系统都是由 C 可执行文件组成的,所以myExecutable 应该没有什么不同。可执行文件是否存在?你能以交互方式调用它吗?
  • 您是否将可执行文件放在 /usr/bin 中并且它是否具有正确的权限位?
  • 您是否编译了该 C 源代码(您本身无法执行)以构建 ELF 可执行文件?您是否安装了该可执行文件?在哪里(在/usr/bin,或/usr/local/bin/,或其他地方)?您可能会注意将其与整个文件补丁一起调用,并且应该检查其权限。
  • 大家好,感谢您的回复。我在 /usr/bin 中有可执行文件,它是一个 ELF 可执行文件。我尝试手动执行相同的可执行文件,它工作正常,但通过脚本它没有被调用.
  • 好的,所以发布脚本。

标签: c bash busybox


【解决方案1】:

这背后可能有很多原因。我的意思是 myExecutable 程序的作用。做 它在标准输出(终端)上打印一些东西,或者这个程序被写来做 一些后台工作。

在任何情况下,我们都可以检查在 shell 下执行的最后一个命令的状态。贝壳 将信息存储在特殊变量 $? 中。如果最后一个命令成功 它将返回 0,否则将返回 >0。

如果可能,请分享您机器上以下命令的输出。

$/usr/bin/myExecutable param1 param2 &

$echo $?

【讨论】:

  • 嗨 mantosh4u,感谢您的回复。我的可执行文件按预期工作。是的,可执行文件有“printf”语句。echo $?打印 0
猜你喜欢
  • 2018-04-13
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2011-01-29
相关资源
最近更新 更多