파일 트랩 에코에 쓸 때 인쇄되지 않지만 콘솔에는 쓰지 않습니다.

파일 트랩 에코에 쓸 때 인쇄되지 않지만 콘솔에는 쓰지 않습니다.

"CTRL+C"로 종료하면 다음 스크립트가 실행됩니다.

#!/bin/bash
function waa(){
    for i in {1..10}
    do
      echo "start.sh: sleeping $i"
      sleep 1s
    done
}

trap "echo 'GAGA'" TERM

waa >> log.txt

echo "gaga"를 log.txt에 트랩하시겠습니까? 왜 이런 일이 발생합니까? 매우 직관적이지 않습니까?

감사해요!

답변1

표준 출력을 로 리디렉션했으며 waa스크립트가 실행될 때 트리거됩니다 log.txt. 해당 컨텍스트 내에서 실행됩니다.trapwaaecho

에코를 보내고 싶다면편안, 표준 오류로 리디렉션해 볼 수 있습니다. 예를 들면 다음과 같습니다.

trap "echo 'GAGA' >&2 " TERM

(스크립트를 실행할 때 표준 오류를 리디렉션하지 않는 한, 이 경우 도움이 될 것입니다).

관련 정보