首页 文章

调用整个路径时无法执行二进制文件[重复]

提问于
浏览
-1

这个问题在这里已有答案:

我正在尝试在Linux Ubuntu 16中使用bison实用程序 . 二进制文件位于 sudo apt-get bison 命令设置的/ usr / bin / bison中 .

但是,当我从bash调用bison时它看起来很有效,但是如果我使用它的路径调用bison,我会收到以下错误(可以在截图中看到)

Cannot execute binary file

enter image description here

请注意,二进制文件的路径是 *type -a bison*

此外,除了/ usr / bin中的bison二进制文件外,还有另一个名为bison.yacc的文件,其中包含:

#! /bin/sh
exec '/usr/bin/bison' -y "$@"

这个问题有什么理由吗?有解决方案吗

1 回答

  • 1

    您不能将 . (或其有效别名, source )与二进制文件一起使用 .

    . / source 用于在当前shell的上下文中执行shell代码 .

    二进制文件只能在子进程中运行,因此您可以直接调用它们:

    /usr/bin/bison
    

    exec 也会创建一个新进程,但它会替换当前的shell .

相关问题