함수에서 터미널로 인쇄하지만 반환 값으로 반환하지 않으려면 어떻게 해야 합니까?

함수에서 터미널로 인쇄하지만 반환 값으로 반환하지 않으려면 어떻게 해야 합니까?

함수 반환 값의 일부로 만들지 않고 함수 내에서 로깅하기 위해 터미널에 어떻게 쓸 수 있나요?

내 샘플 스크립트는 다음과 같습니다.

#!/bin/bash

my_fun() {
  echo "this is for logging purposes"
  retVal="Return only this"
  echo "$retVal"
}

returnedValue=$(my_fun)
if [ "Return only this" = "$returnedValue" ]; then
  echo "Good return"
else
  echo "Bad return"
fi

출력은 되지만 Bad return터미널에는 인쇄되지 않습니다 this is for logging purposes. (터미널로 가고 싶기 때문에) Return only this돌아오지 않고 그냥 돌아올 수 있는 방법은 무엇입니까 ?this is for logging purposes

답변1

출력을 표준 오류로 리디렉션할 수 있습니다.

echo "this is for logging purposes" >&2

표준 오류가 다른 곳으로 리디렉션되지 않는 한 터미널로 이동합니다.

관련 정보