다음 테스트 스크립트가 있습니다.
# test.bash
#----------
{
set -v # Echoes the following 3 parameters
DELAY_MS=2000
SCALING=false
VERBOSE=false
set +v
echo TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST
} 2>&1 | tee test.bash.out
3개의 변수를 설정하고 출력 라인을 에코합니다 TEST
. 이후 set -v
3개의 변수 설정을 미러링하고 싶습니다.표준 출력그리고 tee
기꺼이 test.bash.out
. 그러나 Bash 콘솔이나 test.bash.out
.
왜 나타나지 않습니까?
변수를 표시하는 쉬운 방법이 있습니까?표준 출력?
답변1
set -v
(의 약어 set -o verbose
) 소스 코드 라인 인쇄읽을 때, 그리고 쉘이 중괄호 안의 어떤 것을 실행하기 전에 모든 것을 읽어서 &
끝에 리디렉션이나 파이프 등이 있는지 알아내야 합니다. (그리고 }
그것이 완전히 필요하지 않다고 생각할 수도 있지만 어딘가에 일치하는 것이 있는지 확인하십시오 .)
껍질이 무엇인지 보고 싶다면구현하다, 대신 set -x
( 또는 set -o xtrace
)를 사용하세요.