linux - 检查 "make"的输出,如果失败则退出 bash 脚本

标签 linux bash shell

然而,我不仅对 bash 感兴趣;我已经编写了一个 bash 脚本来执行我的 cmake、make 和 c++ 可执行文件。

#! /bin/bash
cmake .
make
./pcl_visualizer_demo   <-- This is my executable

这很好用,除非我的代码无法编译它执行旧的可执行文件并给我留下一团糟。我希望将 make 的输出放入一个 if 语句中,该语句仅在 make 成功时运行可执行文件。我在 stackoverflow 上的其他帖子中尝试了很多 bash 东西。有些问题似乎是 make 的输出不是字符串,例如:

OUTPUT = make
echo $OUTPUT

给出:

[100%] Built target pcl_visualizer_demo

但无法使用:

if [`expr match "$OUTPUT" '[100%] -eq 5]; then ./pcl_visulizer_demo; fi

更不用说我认为这行错误可能不止一处。我也试过:

if [diff <(echo "$OUTPUT") <(echo '[100%] Built target pcl_visualizer_demo' -n]; then ./pcl_visulizer_demo; fi

同样可能是我没有正确实现它。任何帮助

最佳答案

只需检查 make 的退出代码:

cmake . || exit 1
make || exit 1
./pcl_visualizer_demo 

关于linux - 检查 "make"的输出,如果失败则退出 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919778/

相关文章:

c++ - PCduino - NFC/RFID HSU

java - 找不到符号 'Context',android.content.Context

linux - 使用管道将输入传递给 passwd

mysql - Bash + MySQL -d 反引号问题

macos - 无法在沙盒 cocoa 应用程序中执行 shell 脚本命令

linux - 需要使用 bash shell 脚本批量重命名文件的帮助

arrays - 如何将多个字节附加到文件末尾

linux - Heroku 上的 Electron 应用程序和与 libpng12.so.0 相关的错误 :

在 C 中的 Linux 中清除串口数据?

Bash 脚本错误地将\r 合并到变量中