Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux “奇怪”;上海";行为_Linux_Bash_Sh_Angstrom Linux - Fatal编程技术网

Linux “奇怪”;上海";行为

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

我正在用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 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