2016-03-31 5 views
0

Полностью новый для сценариев bash, пытаясь сделать скрипт для компиляции и запуска всех файлов cpp, начинающихся с «blah». То, что я до сих порскрипт 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 или просто соиЬ «удалась», любой способ сказать было бы хорошо), и мне трудно понять, как получить статус возврата каждой программы или как использовать вывод из каждой программы и посмотреть, говорит ли она «успешно».

+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" 
Смежные вопросы