【发布时间】:2020-05-03 06:05:56
【问题描述】:
我正在编写一个 bash 脚本来编译和运行一个 C++ 程序。这是我的脚本
#!/bin/bash
PROG_NAME=$1
output=$(g++ $PROG_NAME) #redirect the error to a variable
echo $output #show the error on stdout
if [$output = ""]
then
./a.out
fi
如果程序编译失败,我不想运行a.out 文件。为此,我创建了一个变量来存储编译时错误消息。但是这种方法似乎不起作用,因为输出没有被重定向到变量。还有其他方法吗?
编辑
这是对我有用的脚本
#!/bin/bash
PROG_NAME=$1
g++ -Werror $PROG_NAME
if [[ $? == 0 ]]; then
./a.out
fi
【问题讨论】:
-
“用于编译和运行 C++ 程序的 Bash 脚本”顺便说一句:这就是
make的设计目的。使用手工编写的脚本进行编译根本不是一个好主意。因此,您只需开始使用专为您想做的工作而设计的工具!