我多么希望它起作用。
if [ $debug = 0 ]; then
silent=""
else
silent='> /dev/null 2>&1'
fi
#some command
wget some.url $silent
因此,如果设置了 $debug,它将变为
wget some.url > /dev/null 2>&1
否则,如果 $debug 未设置为 1,则变为
wget some.url
将 ">/dev/null 2>&1"存储在变量中不起作用。我怎样才能做到这一点?
最佳答案
这可能是使用 shell 函数的好借口:
silent() {
"$@" > /dev/null 2>&1
}
现在,您可以通过运行以下命令来使程序静音:
silent wget some.url
如果您只想有条件地使事情静音,那很容易:
silent() {
if [[ $debug ]] ; then
"$@"
else
"$@" &>/dev/null
fi
}