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

如何编写带指定gcc参数的Bash脚本实现C程序编译执行

可编译运行C程序的Bash脚本实现

你可以按照要求编写脚本,严格匹配指定gcc编译参数,同时补充基础异常校验避免无效执行:

完整脚本代码

#!/bin/bash

# 校验入参数量
if [ $# -ne 1 ]; then
    echo "使用方式: $0 <C源文件名称>"
    exit 1
fi

# 处理文件名,自动兼容带.c后缀、不带后缀的输入格式
input_name="$1"
if [[ "$input_name" == *.c ]]; then
    file_name="${input_name%.c}"
else
    file_name="$input_name"
fi
source_file="${file_name}.c"

# 校验源文件是否存在
if [ ! -f "$source_file" ]; then
    echo "错误:源文件 $source_file 不存在"
    exit 1
fi

# 严格按要求携带参数执行编译,参数顺序与参考命令完全一致
gcc -Wall -Werror -Wextra "$source_file" -o "$file_name"

# 校验编译结果,仅编译通过时运行程序
if [ $? -eq 0 ]; then
    echo "--- 编译成功,开始运行程序 ---"
    "./$file_name"
else
    echo "--- 编译失败,请修正代码错误后重试 ---"
    exit 1
fi

使用方法

  • 将上述代码保存为任意名称的脚本文件,比如命名为runc
  • 给脚本添加可执行权限,执行命令:chmod +x runc
  • 调用脚本时传入目标C文件名称即可,支持两种传参格式(以源文件demo.c为例):
    • 带后缀调用:./runc demo.c
    • 不带后缀调用:./runc demo

脚本编译逻辑和参考命令完全对齐,gcc调用时固定携带-Wall -Werror -Wextra -o参数,开启-Werror后所有代码警告都会被判定为编译错误,只有零警告、零错误编译通过后,才会自动运行生成的二进制程序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:09:20