値を静かに (コンソール出力なしで) 変数に割り当てるのに問題があります。
変数に割り当てたいnpm list -g
が、コンソール出力がないため、次のようにしました。
npm_list=$(npm list -g &> /dev/null)
しかし、それを行うと$npm_list
何も出力されません( npm の出力を /dev/null に返すためだと思います)。
うん…どうしよう。私はシェルプログラミングにかなり慣れていません。
前もって感謝します!
Git bash シェルを使用すると (申し訳ありませんが、私は現在 Windows を使用しているため、Zsh は利用できません)、これは私にとってはうまくいきます
npm_list=$(npm list -g 2> /dev/null)
はい、コマンドからのすべての出力を に送信している/dev/null
ため、$()
は出力を適切にキャプチャしません。
あなたが望むのは単純です:
npm_list=$(npm list 2>/dev/null)
おそらく、処理できるものが必要な場合がありますが、それは次のようになります。
npm_list=$(npm list --parseable 2>/dev/null | tail -n +2)
npm_list=$(npm list -g) &> /dev/null
これはトリックを行うようです:)
&>
アンパサンドが正確に何を意味するのかまだわかりません。
今エコーすると$npm_list
、すべてのnpmパッケージが含まれています。