You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何在Csh脚本中运行.out二进制文件?

问题解决方法

错误原因

你用sh fo.out执行二进制文件是完全错误的——sh是Shell脚本解释器,只能处理文本格式的Shell脚本,没法解析二进制可执行文件,这才会报cannot execute binary file错误。

解决步骤

  1. 给二进制文件加可执行权限
    先确保fo.out有执行权限,在终端运行:

    chmod +x fo.out
    
  2. 修改脚本,直接执行二进制文件
    把脚本里的sh fo.out $1 text改成./fo.out $1 text即可。下面提供两种可行的脚本版本:

版本1:保留Csh脚本

#!/bin/csh -f

sh ./update

if ($# > 1) then
    echo "参数过多。"
    exit 1
endif

if ($# == 1) then
    ./fo.out $1 text
    ./fo.out $1 text
endif

./RUN.sh

版本2:换成更通用的Bash脚本(推荐)

Linux环境下Bash的兼容性更好,脚本写法也更直观:

#!/bin/bash

# 运行update脚本,如果update没有可执行权限,就用sh ./update
./update

# 检查参数数量
if [ $# -gt 1 ]; then
    echo "参数过多。"
    exit 1
fi

# 存在单个参数时,两次执行fo.out
if [ $# -eq 1 ]; then
    ./fo.out "$1" text
    ./fo.out "$1" text
fi

# 运行RUN.sh
./RUN.sh

额外注意

如果update或RUN.sh没有可执行权限,同样可以用chmod +x update RUN.sh赋予权限,之后直接用./update和./RUN.sh执行;如果它们本身不是带Shebang的Shell脚本,保留sh ./update这种写法也没问题。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 04:02:58