我有一个简单的要求。我想定义几个变量,这些变量将与要通过shell脚本安装的任何给定软件包相对应。
下面的示例代码:
MISC="shutter pidgin"
WEB="apache2 mongodb"
for pkg in $MISC $WEB; do
if [ "dpkg-query -W $pkg | awk {'print $1'} = """ ]; then
echo -e "$pkg is already installed"
else
apt-get -qq install $pkg
echo "Successfully installed $pkg"
fi
done
一切都可以用,但是逻辑似乎有缺陷,因为它不能可靠地安装我想要的软件包。它说已经安装了它们,或者正在尝试安装以前已经安装的软件包。
我也在尝试command -v
以下方法:
if [ "dpkg -l | awk {'print $2'} | grep --regexp=^$pkg$ != """ ]; then
甚至使用-n
和-z
标志来检查返回的字符串是否为空。可以肯定的是,我在这里缺少一些很好的认识。
您是否知道该怎么做才能确保确实安装了软件包?
谢谢!
apt-get install
安装软件包,有什么害处?您可以致电apt-get install $MISC $WEB
。