일부 기능이 포함된 스크립트( )가 있고 또 다른 스크립트( ) ~/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