我有以下脚本检查已安装/未安装的包:
#!/bin/bash
DEPENDENCIES="build-essential pkg-config qt4-qmake libqt4-dev libavformat-dev libavcodec-dev"
for dep in $DEPENDENCIES; do
dpkg -l $dep | grep "$dep"
done | sort
结果是:
dpkg-query: no packages found matching libavformat-dev
dpkg-query: no packages found matching libavcodec-dev
ii build-essential 12.1ubuntu2 amd64 Informational list of build-essential packages
ii pkg-config 0.29.1-0ubuntu1 amd64 manage compile and link flags for libraries
un libqt4-dev (no description available)
un qt4-qmake (no description available)
这就是我所期望的。然后我想将stdout和stderr重定向到一个文件
depend.out
. 因此,我将脚本的最后一行修改为:
done | sort &> depend.out
. 但内容
依赖输出
是:
ii build-essential 12.1ubuntu2 amd64 Informational list of build-essential packages
ii pkg-config 0.29.1-0ubuntu1 amd64 manage compile and link flags for libraries
un libqt4-dev <none> <none> (no description available)
un qt4-qmake <none> <none> (no description available)
即使使用重定向操作符,为什么粗体(未安装的包)中的行丢失?
&>
?