这个if语句是如何工作的?(shell脚本)


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设备。

相关内容

  • 没有找到相关文章

最新更新