我有一些BASH脚本,用于启动我常用的程序,并使用变量来表示命令和参数。调用方式如下:
$PROGRAM $ARG1 $ARG2 &
现在我想默认将输出重定向到stderr和stdout到
/dev/null
。 我希望能够通过脚本中的开关(-v
=详细模式)禁用它。但是,如果我尝试将"2>&1 > /dev/null"
分配给一个变量,比如REDIRECTION
(如果指定了详细模式,则清除它),并尝试这样调用:$PROGRAM $ARG1 $ARG2 $REDIRECTION &
重定向指令作为参数传递给程序。有没有一种方法可以做到这一点?或者我必须使用我的解决方案,根据“详细程度”分别使用两个不同的调用行,一个带有重定向指令,一个没有?
( ... )
内执行的任何程序都会受到exec
命令的影响? - Yamanekoexec
命令会影响 shell 本身。就好像你只是将 Bash 脚本剩余部分重定向到)
一样。由于该脚本内部的命令从它继承其 STDIN 和 STDOUT,因此它们都会受到影响。) - ruakh