这个问题在这里已有答案:
我正在尝试在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 "$@"
这个问题有什么理由吗?有解决方案吗
1 回答
您不能将
.
(或其有效别名,source
)与二进制文件一起使用 ..
/source
用于在当前shell的上下文中执行shell代码 .二进制文件只能在子进程中运行,因此您可以直接调用它们:
exec
也会创建一个新进程,但它会替换当前的shell .