无法比较预期的输出(这是运行C程序的结果)

时间:2019-05-30 15:37:09

标签: bash shell sh

我编写了一个c程序,该程序可以在终端上运行。我想运行一个shell脚本来测试我的代码。问题是我似乎无法弄清楚如何使我的q1_sequence的输出与我的期望值匹配。

#!/bin/sh

OUTPUT="$(./q1_sequence 5 1 3 2 1)"
echo $OUTPUT

EXPECTED="5 1 3 2 1 : returns a value of 99 and 15 iterations"

if [ "$OUTPUT" == "$EXPECTED" ]
then
    echo "Test was true"
else
    echo "Test was not true"
fi

我希望这是真的,并且控制台也要说这是真的。 但是我一点都不明白。

我得到的是:

sh testing.sh
5 1 3 2 1 : returns a value of 99 and 15 iterations testing.sh: 8: [: 5 1 3 2 1 : returns a value of 99 and 15 iterations: unexpected operator Test was not true

我不确定我做错了什么,或者意外的运算符是或曾经是。我尝试了很多不同的东西,但我想我缺少了一些东西,但我无法终生解决。我已经完成OUTPUT ==“ 5 1 3 2 1:返回值99和15次迭代”

我尝试了很多不同种类的组合,但我不能仅仅弄清楚它,所以任何帮助都将有所帮助。

1 个答案:

答案 0 :(得分:1)

使用单个等号。 if [ "$OUTPUT" = "$EXPECTED" ]

sh使用单个等号来比较字符串,而不使用C,==,而不是C,或者使用#!/bin/bashbash testing.sh