bash – 如何将“> / dev / null 2>&1”放入变量?

我多么希望它能发挥作用.

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
}

转载注明原文:bash – 如何将“> / dev / null 2>&1”放入变量? - 代码日志