【问题标题】:Debian output from installed packages in bash arraybash 数组中已安装软件包的 Debian 输出
【发布时间】:2016-03-17 21:59:25
【问题描述】:

对不起,也许是一个菜鸟问题,但我对 Linux 还是很陌生。我正在尝试从数组中的以下命令获取所有输出并循环遍历它(在 bash 中)。

packages=$(dpkg-query --show --showformat='${Package}' )

for p in "${packages[@]}"; do
        echo "Package: ${p}"
done

我不知道我做错了什么,但也许有人可以帮助我。

提前致谢。

问候 MC

感谢您的帮助。我现在的解决方案是:

while IFS= read  -r line; do
        echo "${line}"
done <<< "$(dpkg-query --show --showformat='${Package}\n')"

【问题讨论】:

标签: arrays linux bash debian dpkg


【解决方案1】:

很多东西。

第一

packages=$(dpkg-query --show --showformat='${Package};'

不创建数组。

它创建一个字符串。您需要在命令周围使用() 才能将其拆分为数组。

第二:

即使你在那里使用数组,你也不希望这样做。

请参阅Bash FAQ 001,了解从文件/命令/等中读取数据的适当方法。逐行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-14
    • 2012-02-15
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2021-03-13
    相关资源
    最近更新 更多