Mac终端执行SSH脚本访问学校资源时遇cannot execute binary file错误
解决Mac终端执行文件时的
cannot execute binary file错误 嘿,我来帮你搞定这个头疼的问题!当终端弹出cannot execute binary file提示时,大概率是文件类型、权限或者架构不匹配导致的,咱们一步步排查解决:
先搞清楚你要运行的到底是什么文件
先在终端里执行file 你的文件名,看看输出结果:- 如果显示类似
Mach-O 64-bit executable x86_64或ARM64,这是二进制可执行文件,不是脚本!直接用./你的文件名运行就行,不用把它当脚本处理。 - 如果显示
shell script、Python script这类,那才是真正的脚本文件,接着往下看。
- 如果显示类似
给脚本加上可执行权限
脚本必须拥有执行权限才能被终端运行,执行这条命令给它加权限:chmod +x 你的文件名加完权限后再用
./你的文件名尝试执行。检查脚本的shebang头
脚本的第一行必须指定解释器,比如:- Bash脚本开头要写
#!/bin/bash - Zsh脚本(Mac默认shell)开头写
#!/bin/zsh - Python脚本开头写
#!/usr/bin/env python3
如果缺了这行,终端不知道用什么程序解析脚本,也可能触发错误。打开脚本确认第一行是否正确。
- Bash脚本开头要写
排查二进制文件的架构兼容性
要是你运行的是二进制文件,还得确认它和你的Mac架构匹配:- M系列Mac是ARM64架构,x86架构的二进制需要用Rosetta转译,先执行
arch -x86_64 zsh切换到x86终端,再运行文件。 - 用
lipo -info 你的文件名可以查看文件支持的架构,看看是否和你的Mac一致。
- M系列Mac是ARM64架构,x86架构的二进制需要用Rosetta转译,先执行
内容的提问来源于stack exchange,提问作者Harman Tatla
相关产品推荐
相关产品推荐

