我有一个包含某些功能的脚本(~/func/functions.sh
),而我还有另一个脚本(~/scripts/example.sh
)
代码:functions.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函数的情况下从函数重定向回显?
这是因为你的函数打印到stdout
没有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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句