将c ++程序的输出发送到变量bash

时间:2017-03-24 20:28:35

标签: c++ bash

我正在尝试编写一个系统,用我已经准备好的预先编写的示例对c ++代码进行分级。这是一个非常简单的c ++代码,如下所示:

#include <iostream>
using namespace std;
int main()
{
    int a;
    cin >> a;
    if (a > 100)
        cout << "Big";
    else
        cout << "Small";
    return 0;
}

所以我想用bash测试和评分这个程序,声明一个得分变量并最终回显它。这是我写的(我已经标记了我需要帮助用双引号写作的地方)

#!/bin/bash
g++ new.cpp -o new
test1=101
test2=78
score=0
if [ "Result of executing ./new with $test1 variable as input"=="Big" ]
then
(( score += 50 ))
fi
if [ "Result of executing ./new with $test2 variable as input"=="Small" ]
then
(( score += 50 ))
fi
echo $score

另外我对bash还是一个新手,所以如果你能告诉我一个更简单的方法来使用bash作为例子(比如循环),我很乐意听到它。 谢谢!

1 个答案:

答案 0 :(得分:2)

如果你想用params执行 new 并获得结果,你应该尝试这样的事情:

#!/bin/bash
g++ new.cpp -o new
test1=101
test2=78
score=0
if [ $(./new $test1) == "Big" ]; then
    (( score += 50 ))
fi
if [ $(./new $test2) == "Small" ]; then
    (( score += 50 ))
fi
echo $score