Bash Xeon Phi无法执行二进制文件

Bash Xeon Phi无法执行二进制文件,bash,shell,ubuntu-14.04,xeon-phi,Bash,Shell,Ubuntu 14.04,Xeon Phi,我试图在xeon phi协处理器上执行一个二进制文件,它返回时显示“bash:cannotexecutebinary file”。因此,我试图找到如何查看错误日志,或者让它显示当我告诉它执行导致它无法工作时发生的情况。我已经尝试了bash--verbose,但它没有显示任何其他信息。有什么想法吗?更新:下面的没有回答OP的问题-这是一种可能的解释,说明无法执行二进制文件错误,但错误消息前缀为bash:表明二进制文件被正确调用(通过bash),但与执行平台不兼容(为不同的体系结构编译)——正如@B

我试图在xeon phi协处理器上执行一个二进制文件,它返回时显示“bash:cannotexecutebinary file”。因此,我试图找到如何查看错误日志,或者让它显示当我告诉它执行导致它无法工作时发生的情况。我已经尝试了
bash--verbose
,但它没有显示任何其他信息。有什么想法吗?

更新:下面的没有回答OP的问题-这是一种可能的解释,说明
无法执行二进制文件
错误,但错误消息前缀为
bash:
表明二进制文件被正确调用(通过bash),但与执行平台不兼容(为不同的体系结构编译)
——正如@Barmar在评论中所述

因此,虽然下面包含一些(希望仍然有些有用的)一般信息,但它并没有解决OP的问题


无法执行二进制文件
的一个可能原因是错误地将二进制(可执行)文件而不是shell脚本(包含shell代码的文本文件)作为操作数(文件名参数)传递给bash

以下内容说明了问题:

bash printf # fails with '/usr/bin/printf: /usr/bin/printf: cannot execute binary file'
注意错误传递的二进制文件的路径如何在错误消息前加两次前缀;如果第一个前缀改为
bash:
,那么原因很可能不是错误调用的问题,而是试图调用不兼容的二进制文件(为不同的体系结构编译)的问题

如果希望bash调用二进制文件,则必须使用
-c
选项来传递它,该选项允许您指定整个命令行;i、 即二进制加参数;e、 g:

如果只传递一个二进制文件名而不是完整路径,例如,
-c'program…
,则bash看到的
$path
变量
中列出的一个目录中必须存在同名的二进制文件,否则将出现
命令未找到
错误


相反,如果二进制文件位于当前目录中,则必须在文件名前面加上
/
前缀,bash才能找到它;e、 g.
-c./program…”
更新:下面的内容不能回答OP的问题
-这是
无法执行二进制文件
错误的一种可能解释,但是错误消息的前缀是
bash:
这一事实表明二进制文件正在被正确调用(由bash调用),但与执行平台(为不同的体系结构编译)不兼容。
-正如@Barmar在评论中已经指出的那样

因此,虽然下面包含一些(希望仍然有些有用的)一般信息,但它并没有解决OP的问题


无法执行二进制文件
的一个可能原因是错误地将二进制(可执行)文件而不是shell脚本(包含shell代码的文本文件)作为操作数(文件名参数)传递给bash

以下内容说明了问题:

bash printf # fails with '/usr/bin/printf: /usr/bin/printf: cannot execute binary file'
注意错误传递的二进制文件的路径如何在错误消息前加两次前缀;如果第一个前缀改为
bash:
,那么原因很可能不是错误调用的问题,而是试图调用不兼容的二进制文件(为不同的体系结构编译)的问题

如果希望bash调用二进制文件,则必须使用
-c
选项来传递它,该选项允许您指定整个命令行;i、 即二进制加参数;e、 g:

如果只传递一个二进制文件名而不是完整路径,例如,
-c'program…
,则bash看到的
$path
变量
中列出的一个目录中必须存在同名的二进制文件,否则将出现
命令未找到
错误


相反,如果二进制文件位于当前目录中,则必须在文件名前面加上
/
前缀,bash才能找到它;e、 g.
-c./program…”
更新:下面的内容不能回答OP的问题
-这是
无法执行二进制文件
错误的一种可能解释,但是错误消息的前缀是
bash:
这一事实表明二进制文件正在被正确调用(由bash调用),但与执行平台(为不同的体系结构编译)不兼容。
-正如@Barmar在评论中已经指出的那样

因此,虽然下面包含一些(希望仍然有些有用的)一般信息,但它并没有解决OP的问题


无法执行二进制文件
的一个可能原因是错误地将二进制(可执行)文件而不是shell脚本(包含shell代码的文本文件)作为操作数(文件名参数)传递给bash

以下内容说明了问题:

bash printf # fails with '/usr/bin/printf: /usr/bin/printf: cannot execute binary file'
注意错误传递的二进制文件的路径如何在错误消息前加两次前缀;如果第一个前缀改为
bash:
,那么原因很可能不是错误调用的问题,而是试图调用不兼容的二进制文件(为不同的体系结构编译)的问题

如果希望bash调用二进制文件,则必须使用
-c
选项来传递它,该选项允许您指定整个命令行;i、 即二进制加参数;e、 g:

如果只传递一个二进制文件名而不是完整路径(例如,
-c'program…
),则该文件名的二进制文件必须存在于
$path
变量中所列的目录之一中