Basit bir gereksinim var. Bir kabuk betiği aracılığıyla kurmak istediğim belirli sayıda pakete karşılık gelecek birkaç değişken tanımlamak istiyorum.
Aşağıdaki örnek kod:
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
Her şey çalışıyor, ama mantık hatalı görünüyor çünkü istediğim paketleri güvenilir bir şekilde kurmuyor. Ya zaten kurulmuş olduklarını ya da daha önce kurulmuş paketleri kurmaya çalıştığını söylüyor.
Ayrıca şunu da deniyorum command -v
:
if [ "dpkg -l | awk {'print $2'} | grep --regexp=^$pkg$ != """ ]; then
Ve döndürülen dizenin boş olup olmadığını kontrol etmek için -n
ve -z
bayraklarıyla bile . Eminim burada bazı iyi duygular özlüyorum.
Bir paketin gerçekten kurulu olup olmadığından emin olmak için ne yapabileceğim hakkında bir fikrin var mı?
Teşekkürler!
apt-get install
kurulu paketleri de ararsanız, bunun zararı var mı? Sadece arayabilirsinapt-get install $MISC $WEB
.