Quando você digita function_under_test
, o shell pensa que é um comando, não uma variável. Você precisa expandi-lo, então function_uneder_test
será expandido para sum_squares
.
Altere sua linha 32 para:
"$function_under_test" "$3"
Eu queria escrever meu próprio test runner:
do_test () {
function_under_test=$1
expected="$2"
function_under_test $3 # <-- Line 32
if [ $result -eq $expected ]; then
printf '.'
else
printf 'F'
fi
}
para que eu possa ligar com
do_test sum_squares 385 10
e então usaria
sum_squares () {
result=0
num_in=$1
for each_num in 'seq $num_in'
do
result=$((result+(each_num*each_num)))
done
}
mas estou recebendo function_under_test: not found
na linha 32
Tags scripting shell-script