1

我无法安静地为变量分配值(无控制台输出)。

我想分配npm list -g给一个变量,但没有任何控制台输出,所以我这样做了:

npm_list=$(npm list -g &> /dev/null)

但是当我这样做时什么都不$npm_list输出(我想是因为我将 npm 的输出返回到 /dev/null )。

是的……那我该怎么做呢?我对 shell 编程很陌生。

提前致谢!

4

3 回答 3

4

使用 Git bash shell(对不起,我现在在 Windows 上,所以没有可用的 Zsh),这对我有用

npm_list=$(npm list -g 2> /dev/null)
于 2013-06-06T17:08:44.253 回答
4

是的,您将命令的所有输出发送到,/dev/null因此$()无法正确捕获输出。

你想要的只是:

npm_list=$(npm list 2>/dev/null)

尽管您可能想要一些可以处理的东西,但它是:

npm_list=$(npm list --parseable 2>/dev/null | tail -n +2)
于 2013-06-06T17:13:38.997 回答
3

npm_list=$(npm list -g) &> /dev/null

这似乎可以解决问题:)

我仍然不知道&符号的&>确切含义。

当我$npm_list现在回显时,它里面有所有的 npm 包。

于 2013-06-06T17:12:58.777 回答