Linux “奇怪”;上海";行为
我正在用Angstrom Linux发行版在Beaglebone板上开发一个应用程序。我遇到了一个有趣的问题 当我执行:Linux “奇怪”;上海";行为,linux,bash,sh,angstrom-linux,Linux,Bash,Sh,Angstrom Linux,我正在用Angstrom Linux发行版在Beaglebone板上开发一个应用程序。我遇到了一个有趣的问题 当我执行: sh /home/root/Desktop/BBTCP/out/vehicleDetect 192.168.10.29 在终端上写着 /home/root/Desktop/BBTCP/out/vehicleDetect: /home/root/Desktop/BBTCP/out/vehicleDetect: cannot execute binary
sh /home/root/Desktop/BBTCP/out/vehicleDetect 192.168.10.29
在终端上写着
/home/root/Desktop/BBTCP/out/vehicleDetect: /home/root/Desktop/BBTCP/out/vehicleDetect: cannot execute binary file
但当我执行
cd /home/root/Desktop/BBTCP/
及
它开始工作了
我无法使用第一个配置运行tha应用程序的原因和原因是什么
我想这是关于/和sh之间的区别。区别是什么?我的第一个猜测是路径
/home/root/Desktop/BBTCP
中的一个文件夹是链接。如果vehicleDetect
是一个脚本,并且它递归地调用自己,那么这个链接可能会混淆它
如果不是这样,请尝试sh-x/home/root/Desktop/BBTCP/out/vehicleDetect
并查看打印内容
最后,检查文件夹
/home/root/Desktop/BBTCP
中的内容。其中可能有一个可执行文件sh
。如果您的路径包含
,则可能会执行不同的shell。似乎/home/root/Desktop/BBTCP/out/vehicleDetect
正在调用基于不同体系结构构建的二进制文件(可执行文件)
sh
和/
之间的主要区别在于/
将尝试将文件本身作为可执行文件执行,而sh
将为您执行。可能是文件开头有一个奇怪的魔法数字,但您可能希望sh
会对此抱怨
尽管这是一个#,但最好的猜测包含无效字符或引用奇怪文件的文件开头的代码>行。例如,您是否从另一个具有不同行尾的操作系统(如Windows)中带来此脚本文件?当文本文件脚本没有被转换而只是被复制时,我也看到了类似的效果。也许你下载的格式很奇怪
检查od-xc/home/root/Desktop/BBTCP/out/vehicleDetect
,看第一行。认为这是/和sh之间的区别:但是您的两个示例都使用sh
,也没有使用/
。每个目录中的“哪个sh”给出了什么,以及“文件路径/to/vehicleDetect”给出了什么我已经找到了解决方案,vehicledetect不是一个脚本,它是一个可执行的二进制文件。所以使用sh不是正确的方法。非常感谢。
sh out/vehicleDetect 192.168.10.29