Mac(fish shell)下执行bash脚本失败的解决方法咨询
解决Bash脚本Exec Format Error的问题
首先,咱们来拆解你遇到的错误:Exec format error 最常见的诱因是脚本的shebang行格式不对。看你提供的代码,#!/bin/bash 和 echo "test" 挤在了同一行,这会让操作系统把整行当成解释器路径——显然不存在叫 /bin/bash echo "test" 的程序,自然就报错了。
另外,虽然你的默认shell是fish,但这不影响bash脚本的运行,只要shebang设置正确,系统会自动调用bash来执行脚本内容。
下面是具体的解决步骤:
修正脚本的shebang格式
打开你的msa.sh,确保第一行单独写shebang,调整后的脚本内容如下:#!/bin/bash echo "test"保存后重新运行
./msa.sh,应该就能正常输出内容了。备选方案:直接指定bash解释器运行
如果暂时不想修改脚本,也可以直接用bash命令强制执行:bash ./msa.sh这种方式会跳过shebang的检查,直接让bash解析执行脚本里的内容。
检查换行符格式(可选排查项)
有时候Mac上创建的脚本可能带有Windows风格的换行符(CRLF),这也可能导致执行失败。你可以用下面的命令查看换行符:cat -A ./msa.sh如果看到每行末尾有
^M标记,说明是Windows换行符,用这条命令转换为Unix格式:sed -i '' 's/\r$//' ./msa.sh
内容的提问来源于stack exchange,提问作者user6124024
相关产品推荐
相关产品推荐

