linux - 调用二进制文件的整个路径时无法执行该文件

标签 linux bash

我正在尝试在 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 "$@"

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

最佳答案

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

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

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

/usr/bin/bison

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

关于linux - 调用二进制文件的整个路径时无法执行该文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690057/

相关文章:

linux - 使用 "ar"合并 .o 和 .a 文件 (Linux)

php - 限制 PHP 中 shell_script 的执行时间

linux - 在 Linux 上的多个文件中搜索字符串

编译差异: Windows vs. Linux

regex - 使用\b 和 grep 模式

bash - 带有 bash 可编程补全的条件尾随空格

linux - 递归查找 ".sh"文件,然后在该路径上执行我的 .sh 文件

bash - 1 : command not found

ruby - 使用 ansible playbook 更改 rvm ruby​​ 版本

linux - 使用 diff 并抑制完全不同的文件