c 程序二进制文件不能在 sh 中 运行

c program binary cannot run in sh

我已经从基于 arm 的嵌入式系统的 c 代码交叉编译了一个可执行文件。当我在嵌入式系统中执行二进制文件时,出现以下错误:

line 1: syntax error: unexpected word (expecting ")")

我四处搜索了一下,发现是因为我使用的嵌入式系统(Linux的某些版本)没有bash,只有sh。是否可以使用 sh 使我编译的二进制可执行文件无需在其中安装 bash(这很麻烦)?

二进制文件不是为 shell 程序构建的。它们是为特定架构和 OS 环境构建的。 shell 所做的只是 fork() 一个子进程并调用 exec()。因此,您的主机是否具有 bashsh 并不重要。只需确保二进制文件适用于正确的体系结构和机器。而且您确实在执行二进制文件,而不是源代码。