我无法安静地将值(无控制台输出)分配给变量。
我想将npm list -g
分配给变量,但没有任何控制台输出,所以我这样做了:
npm_list=$(npm list -g &> /dev/null)
但是当我这样做时$npm_list
没有输出任何内容(我想因为我将npm的输出返回到/ dev / null)。
提前致谢!
答案 0 :(得分:4)
使用Git bash shell(抱歉,我现在在Windows上,所以没有Zsh可用),这对我有用
npm_list=$(npm list -g 2> /dev/null)
答案 1 :(得分:3)
是的,您要将命令的所有输出发送到/dev/null
,以便$()
无法正确捕获输出。
你想要的只是:
npm_list=$(npm list 2>/dev/null)
虽然你可能想要一些你可以处理的东西,但是:
npm_list=$(npm list --parseable 2>/dev/null | tail -n +2)
答案 2 :(得分:2)
npm_list=$(npm list -g) &> /dev/null
这似乎可以解决问题:)
我仍然不知道&>
中的&符号究竟意味着什么。
当我现在回复$npm_list
时,它包含所有npm包。