我不仅对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
可能是我没有正确实现。有什么帮助吗?