2016-03-31 31 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"