Saya punya persyaratan sederhana. Saya ingin mendefinisikan beberapa variabel yang akan sesuai dengan sejumlah paket yang diberikan yang ingin saya instal melalui skrip shell.
Contoh kode di bawah ini:
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
Semuanya agak berfungsi, tetapi logika tampaknya cacat karena itu tidak dapat dipercaya menginstal paket yang saya inginkan. Entah itu mengatakan mereka sudah diinstal atau sedang mencoba untuk menginstal paket yang sudah diinstal sebelumnya.
Saya juga sudah mencoba dengan command -v
atau yang berikut:
if [ "dpkg -l | awk {'print $2'} | grep --regexp=^$pkg$ != """ ]; then
Dan bahkan dengan -n
dan-z
bendera untuk memeriksa apakah string yang dikembalikan kosong. Cukup yakin saya kehilangan akal sehat di sini.
Apakah Anda tahu apa yang bisa saya lakukan untuk memastikan paket benar-benar diinstal atau tidak?
Terima kasih!
apt-get install
paket yang diinstal juga? Anda bisa meneleponapt-get install $MISC $WEB
.