我尝试过:
updates=( $(softwareupdate --list) )
它抓住了:
echo $updates
Software Update Tool
Finding available software
而不是完整输出:
Software Update Tool
Finding available software
No new software available.
没有胶水如何解决这个问题。
我无法检查,因为我没有 macOS,但我认为输入中缺少的行可能会转到 stderr,但运算符
$( ... )
仅捕获 stdout
我可以尝试将 stderr 重定向到 stdout:
updates=( $(softwareupdate --list 2>& 1) )
另外,我对您给出的示例感到惊讶:您将
updates
设置为数组,但将其显示为字符串。它应该只显示第一个单词