일반적으로 를 사용 XX 2>error.log
하지만 디버깅 목적으로 다음 구문을 선호합니다.
function XX()
{
redirect_io_to "error.log"
}
그러한 구문을 사용할 수 있습니까?
일부 단축키를 사용하여 줄에 주석을 달거나 주석 처리를 취소하도록 VIM을 설정하고 쉽게 주석을 달거나 주석 처리를 해제할 수 있기 때문에 편리합니다.
답변1
응, 하지만 별로 예쁘지는 않아.
파일로 exec 2> error.log
보낼 수 있습니다stderr
문제는 이제 정리하고 복원해야 stderr
하기 때문에 함수 하단에서 해야 하기 때문에 다시 터미널로 돌아가게 exec 2>&1
만든다는 것입니다 .stderr
function XX()
{
exec 2> error.log
foo bar
exec 2>&1
}
exec 2>&1
계속해서 사용해도 문제가 되지 않으므로 첫 번째 항목에 대해 주석을 달고 주석을 제거하면 됩니다 exec
.
또는 리디렉션이 자동으로 지워지도록 전체 함수를 서브셸에서 실행하도록 할 수 있습니다(아래 예의 대괄호는 서브셸을 시작합니다).
function XX()
{ (
exec 2> error.log
foo bar
) }
마지막으로, 쉽게 주석을 달거나 주석을 제거할 수 있는 별칭 정의를 만들어 함수 선언 앞에 배치할 수 있습니다.
alias XX='XX 2> error.log'
function XX()
{
foo bar
}
답변2
아니요, 하지만 언제든지 원하는 모든 것을 블록에 쌓을 수 있습니다.
function XX() {
(
some
commands
here
) 2>error.log
}