我想编写自己的测试运行程序:
do_test () {
function_under_test=$1
expected="$2"
function_under_test $3 # <-- Line 32
if [ $result -eq $expected ]; then
printf '.'
else
printf 'F'
fi
}
这样我就可以用它来调用它
do_test sum_squares 385 10
然后它会使用
sum_squares () {
result=0
num_in=$1
for each_num in `seq $num_in`
do
result=$((result+(each_num*each_num)))
done
}
但我已经到了function_under_test: not found
第 32 行
答案1
当您键入 时function_under_test
,shell 认为它是命令,而不是变量。您需要扩展它,因此function_uneder_test
将扩展为sum_squares
.
将第 32 行更改为:
"$function_under_test" "$3"