我正在尝试在 Linux Ubuntu 16 中使用 bison 实用程序。二进制文件位于由 sudo apt-get bison
设置的 /usr/bin/bison 中。 命令。
但是,当我从 bash 调用 bison 时,它看起来好像可以工作,但是如果我使用它的路径调用 bison,则会收到以下错误(可以在屏幕截图中看到)
Cannot execute binary file
请注意,二进制文件的路径是通过 *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/