解释这段代码

fro*_*odo 10 bash

有人可以解释这段代码意味着什么吗?

我相信第二行是"如果退出状态为零",则回显"有效命令",但我不理解第一行

$@ &>/dev/null
if [[ $? = 0 ]]
then
   echo "Valid command"
fi
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 7

第一行运行通过简单地使用脚本的所有参数形成的命令,并将输出重定向到/ dev/null,这实际上将其抛弃.

内置变量$ @扩展到所有位置参数,每个参数都是带引号的字符串,即参数完整传递,无需解释或扩展.为了达到这个效果,我相信你需要引用变量的使用,即说"$@".

操作员&>重定向stdout和stderr.


Jo *_* So 2

我想补充一点,这是不必要的冗长,可以缩短为

if "$@" &>/dev/null
then
    echo "Valid command"
fi
Run Code Online (Sandbox Code Playgroud)

甚至更短

"$@" &>/dev/null && echo "Valid command"
Run Code Online (Sandbox Code Playgroud)