if $* >/dev/null 2>&1; then
echo Command ""$*"" succeeded
else
echo Command ""$*"" failed
fi
据我所知:所传递的参数在";黑洞";。然后将stderr重定向到stdout。但是,当成功发出传递的命令时,为什么这会导致满足条件呢?
通过if $* >/dev/null 2>&1; then
命令:
-
一般语法为
if COMMANDS; then
。在您的情况下,COMMANDS
只是一个单独的命令$* >/dev/null 2>&1
。 -
该命令将输出重定向到空设备(
>/dev/null
(,并将错误输出重定向到标准输出(2>&1
(,因此也重定向到空装置。 -
命令本身是通过展开
$*
来检索的。这个特殊变量扩展为shell脚本的参数。
所以本质上:命令及其参数从$*
扩展,输出以及错误输出重定向到null设备。