테스트 실행기에 함수 이름을 전달하는 방법은 무엇입니까?

테스트 실행기에 함수 이름을 전달하는 방법은 무엇입니까?

나만의 테스트 실행기를 작성하고 싶습니다.

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쉘은 이를 변수가 아닌 명령이라고 생각합니다. function_uneder_test확장 해야 하므로 sum_squares.

32행을 다음으로 변경합니다.

"$function_under_test" "$3"

관련 정보