일부 기능이 포함된 스크립트( ~/func/functions.sh
)가 있고 다른 스크립트( ~/scripts/example.sh
) 가 있습니다.
코드: function.sh
#!/bin/bash
function NameofFunction()
{
# do something...
echo -e "\e[31m[ ERROR ]\e[39m more text..." 1>&2
}
코드: example.sh (잘 작동함)
#!/bin/bash
. ~/func/functions.sh
function functioninExample()
{
#do something...
NameofFunction ${VAR1} ${VAR2}
}
functioninExample 2>/dev/null
코드: example.sh (작동하지 않음)
#!/bin/bash
. ~/func/functions.sh
function functioninExample()
{
#do something...
NameofFunction ${VAR1} ${VAR2} 2>/dev/null
}
functioninExample
함수를 편집하지 않고 내 함수에서 에코를 어떻게 리디렉션할 수 있나요?
NameofFunction ${VAR1} ${VAR2} 2>/dev/null
작동하지 않습니다.
functioninExample 함수를 리디렉션하지 않고 함수에서 에코를 리디렉션하려면 어떻게 해야 합니까?
답변1
stdout
이는 귀하의 기능이 not 로 인쇄되고 있기 때문입니다 stderr
. 시도해 보십시오.
NameofFunction ${VAR1} ${VAR2} >/dev/null
또는 둘 다 리디렉션stderr
그리고 stdout
:
NameofFunction ${VAR1} ${VAR2} >/dev/null 2>&1
에 오류를 인쇄하는 것이 좋은 스타일 stderr
이므로 위의 답변 대신 다음과 같이 기능을 변경하는 것이 좋습니다.
echo -e "\e[31m[ ERROR ]\e[39m more text..." 1>&2