很抱歉,如果之前已经提出问题,或者很简单。我google了一下,找不到答案,我是新手。
我通常使用&>/dev/null
为每个命令重定向stdout和stderr。
在我的一个代码中,我必须为10个连续的命令执行此操作,这很难看:)
Command 1 &>/dev/null
Command 2 &>/dev/null
.
.
.
Command 10 &>/dev/null
无论如何都要同时为所有这些程序执行此程序;例如
Command 1
Command 2
.
.
.
Command 10
**Redirect all of them together**
谢谢:)
答案 0 :(得分:4)
用大括号围住它们
{
Command 1
Command 2
.
.
.
Command 10
} &>/dev/null
答案 1 :(得分:1)
我最喜欢@ BroSlow的答案。另一种重定向stdout和stderr的方法
echo before
# turn off stdout and stderr
# (but save their currect locations first)
exec 3>&1 1>/dev/null
exec 4>&2 2>/dev/null
echo no
echo error >&2
echo output
# restore stdout and stderr
# and close the temp file descriptors
exec 1>&3 3>&-
exec 2>&4 4>&-
echo after
echo after error >&2
你会看到“之前”和“之后”的东西,但不会看到中间的输出。
答案 2 :(得分:0)
不确定命令后的数字是命令或文件描述符编号的参数吗?你能解释一下吗?
#!/usr/bin/env bash
for i in {1..10}
do
command $i &>/dev/null
done