2016-03-31 33 views
0

完全是bash脚本的新尝试,它试图编译脚本来运行所有以“blah”开头的cpp文件。我至今是用于编译和运行测试用例的bash脚本

#1/bin/bash 

for i in blah*.cpp 
do 
    if g++ "$i" -o "${i%.cpp}.out"; then 
     /Users/[directory]/Desktop/"${i%.cpp}.out" #to run each testcase 

    else 
     echo "failed" 
    fi 
done 

我需要知道有多少等等文件成功运行(我可以做C++程序返回1或只是COUT“成功”,没有办法告诉就可以了),我无法弄清楚如何获得每个程序的返回状态,或者如何使用每个程序运行的输出,并看看它是否显示“成功”。

+0

而不是'/ Users/[directory] ​​/ Desktop /'为什么不使用'。/'? – kfsone

+0

'〜/ Desktop'? '$ HOME/Desktop'?' – tadman

回答

0

让您的测试案例成功返回1,失败返回0。然后可以使用返回值如下:

counter=0 
for i in blah*.cpp 
do 
    if g++ "$i" -o "${i%.cpp}.out"; then 
     if /Users/[directory]/Desktop/"${i%.cpp}.out" ; then 
      counter=$((counter+1)) 
     else 
      echo "failed to run" 
     fi 
    else 
     echo "failed to build" 
    fi 
done 
echo "$counter tests succeeded"