首页 > 解决方案 > 无法使用 bash 命令执行二进制文件

问题描述

我想cpp从我的 git 为 windows bash 运行一个可执行文件。我不明白为什么我可以用它来运行它,./Main 但我不能用它来运行它bash Mainor bash Main.exe。在后一种情况下,我收到一个错误:

不能执行二进制文件

主文件

#include<iostream>

int main()
{
std::cout<<"Hello World";
return 0;
}

脚本.sh

 echo "Hello from Bash script.."
    echo "Hostname:${1}"
    echo "Port:${2}"
    echo "Listing contents:"
    ls -a
    echo "Launching cpp executable:"
    path=$(pwd)
    echo "Current path:${path}"
    bash "${path}/Main"

为了编译 C++ 代码,我使用:g++ -o Main main.cpp.

问题是什么?有人可以解释一下吗?

标签: bashbinaryfiles

解决方案


只需删除bash脚本最后一行的:

"${path}/Main"

不要忘记使其可执行。

chmod +x script.sh

它对我有用:

./script.sh hostname 80
Hello from Bash script..
Hostname:hostname
Port:80
Listing contents:
.       ..      Main        main.cpp    script.sh
Launching cpp executable:
Current path:/tmp/test
Hello World

推荐阅读