【问题标题】:Cannot execute binary file when calling its whole path [duplicate]调用其整个路径时无法执行二进制文件[重复]
【发布时间】:2017-04-29 07:17:53
【问题描述】:

我正在尝试在 Linux Ubuntu 16 中使用 bison 实用程序。二进制文件位于 /usr/bin/bison@987654323 设置@ 命令。

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

Cannot execute binary file

注意二进制文件的路径是用*type -a bison*获取的

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

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

这个问题有什么原因吗?有什么解决办法吗?

【问题讨论】:

    标签: linux bash


    【解决方案1】:

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

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

    二进制文件只能在进程中运行,所以你直接调用它们

    /usr/bin/bison
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多