如何使用 Bourne Shell 运行我的 C 程序?

如何使用 Bourne Shell 运行我的 C 程序?

通过切换到 C 程序的目录并使用 启动它们,我可以毫无问题地运行它们./。但是,我不确定为什么切换到目录然后键入时sh [Program Name]会出现此错误:

Fortune_Teller_5000: 1: Fortune_Teller_5000: Syntax error: "(" unexpected

和:

./Fortune_Teller_5000: 1: ./Fortune_Teller_5000: Syntax error: "(" unexpected

我在 bash 手册页中看到,该sh命令是一个不读取文件的 shell .bashrc,所以我有点困惑,为什么我不能用它来运行我编写的程序。我确实按照 HP Linux 成像和打印页面上的说明使用它来安装打印机驱动程序。

答案1

打字sh program_name假设程序名称是 shell 脚本并执行该脚本(因此它必须是 sh/bash 语言)。如果Fortune_Teller_5000是二进制文件(编译后的 C 程序,甚至是 C 源代码),则运行sh Fortune_Teller_5000将无法按预期进行。

您可以通过以下 2 种方式来实现:

  1. 输入sh然后按 ENTER,然后输入./Fortune_Teller_5000(您可能需要cd进入正确的目录)
  2. 键入sh -c ./Fortune_Teller_5000sh -c /path/to/folder/Fortune_Teller_5000

答案2

运行sh [Program Name]指示sh程序执行一个名为的 shell 脚本[Program Name],如果此文件是 C 程序,则命令将失败。

sh 的 POSX 规范,标准命令语言解释器指出的参数sh应该是“包含命令的文件的路径名”。

相关内容