如何编写带指定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
相关产品推荐
相关产品推荐

