bash 数组中已安装软件包的 Debian 输出
Debian output from installed packages in bash array
抱歉可能是一个菜鸟问题,但我是 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')"
很多事情。
第一个
packages=$(dpkg-query --show --showformat='${Package};'
不创建数组。
它创建一个字符串。您需要 ()
围绕命令将其拆分为一个数组。
第二个:
即使您在那里使用数组,您也不会希望这样做。
有关从 file/command/etc 读取数据的适当方法,请参阅 Bash FAQ 001。逐行.
抱歉可能是一个菜鸟问题,但我是 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')"
很多事情。
第一个
packages=$(dpkg-query --show --showformat='${Package};'
不创建数组。
它创建一个字符串。您需要 ()
围绕命令将其拆分为一个数组。
第二个:
即使您在那里使用数组,您也不会希望这样做。
有关从 file/command/etc 读取数据的适当方法,请参阅 Bash FAQ 001。逐行.