然而,我不仅对 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/