我编写了一个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次迭代”
我尝试了很多不同种类的组合,但我不能仅仅弄清楚它,所以任何帮助都将有所帮助。
答案 0 :(得分:1)
使用单个等号。 if [ "$OUTPUT" = "$EXPECTED" ]
sh
使用单个等号来比较字符串,而不使用C,==
,而不是C,或者使用#!/bin/bash
或bash testing.sh
。