加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

是否可以让bash检测C中的编译错误?

发布时间:2020-12-16 01:48:54 所属栏目:安全 来源:网络整理
导读:参见英文答案 How to check if gcc has failed,returned a warning,or succeeded in Bash?????????????????????????????????????3个 我有一个棘手的要求: 我需要使用bash编译100个程序,比如1.c,2.c,3.c … 100.c,我想保留那些编译成功的c程序并删除编译错误
参见英文答案 > How to check if gcc has failed,returned a warning,or succeeded in Bash?????????????????????????????????????3个
我有一个棘手的要求:

我需要使用bash编译100个程序,比如1.c,2.c,3.c … 100.c,我想保留那些编译成功的c程序并删除编译错误的c程序.

到目前为止,我只能实现编译这100个程序的目标,但我真的不知道如何检测这100个程序中的编译是否失败.

解决方法

只需检查返回代码是否为非零,如果文件非零,则删除该文件.返回码存储在shell变量$?中?运行编译器后.

以下是这种脚本的长形式.

for i in {1..99}; 
do
    gcc ${i}.c 2> /dev/null > /dev/null

    if [[ $? -ne 0 ]]; then
        rm ${i}.c
    fi

done

作为用户268396,中间部分可以缩短为以下内容.

gcc ${i}.c || rm ${i}.c

使用短路运算符||将确保后一个语句仅在前一个语句失败时才会运行(即,以非零返回码退出).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读