如何在函数中使$(command)> / dev / null静默-而不是-使sh文件静默

时间:2019-06-03 11:09:00

标签: bash

我正在从脚本函数调用命令。我希望它不打印出来,而只打印到一个变量。 打印到:

MYVAR=$(docker inspect -f {{.State.Status}} $1)

我尝试添加&>/dev/null,但请确保没有设置变量。有没有像这样的中间步骤? $(command >MYVAR&>/dev/null)

更新

就在我等待接受@anubhava很好的回答时,我发现这可以解释Difference between 2>&-, 2>/dev/null, |&, &>/dev/null and >/dev/null 2>&1

1 个答案:

答案 0 :(得分:3)

由于使用2>/dev/null将命令输出存储在变量中,因此实际需要抑制stderr。因此使用:

myvar=$(docker inspect -f {{.State.Status}} "$1" 2>/dev/null)

还建议您避免使用所有大写字母的变量名,以免覆盖环境变量。