Sprawdzanie stanu pakietów w Bashu

Potrzebujesz pomocy z C, C++, perl, python, itp.
istrd
Beginner
Posty: 127
Rejestracja: 14 stycznia 2009, 17:18

Sprawdzanie stanu pakietów w Bashu

Post autor: istrd »

Jeszcze nie jestem tak obcykany w bashu i dlatego mam takie pytanie. Jak mogę sprawdzić, czy pakiet jest zainstalowany i jeżeli jest to wyświetlić komunikat ,,Pakiet zainstalowany''?
Awatar użytkownika
jasiekmarc
Posty: 88
Rejestracja: 27 września 2009, 20:05
Lokalizacja: Wrocław

Post autor: jasiekmarc »

Kod: Zaznacz cały

 1 wyplute=`apt-cache policy $1 | grep -c brak`
  2 if [  $wyplute == "1" ]
  3 then
  4         echo "Nie ma takiego pakietu"
  5 else
  6         echo "Pakiet zainstalowany"
  7 fi
istrd
Beginner
Posty: 127
Rejestracja: 14 stycznia 2009, 17:18

Post autor: istrd »

jasiekmarc pisze:

Kod: Zaznacz cały

 1 wyplute=`apt-cache policy $1 | grep -c brak`
  2 if [  $wyplute == "1" ]
  3 then
  4         echo "Nie ma takiego pakietu"
  5 else
  6         echo "Pakiet zainstalowany"
  7 fi

Dzięki wielkie działa :P
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

jasiekmarc pisze:wyplute=`apt-cache policy $1 | grep -c brak`
Tak średnio raczej, bo jak podasz nazwę pakietu który nie istnieje to dostaniesz coś takiego
W: Nie udało się odnaleźć pakietu vimrc
Pakiet zainstalowany
Już prędzej tak:

Kod: Zaznacz cały

wyplute=`apt-cache policy $1 2>&1 >/dev/null | grep -c "brak|Nie"`
Awatar użytkownika
jasiekmarc
Posty: 88
Rejestracja: 27 września 2009, 20:05
Lokalizacja: Wrocław

Post autor: jasiekmarc »

lessmian2 pisze:
jasiekmarc pisze:wyplute=`apt-cache policy $1 | grep -c brak`
Tak średnio raczej, bo jak podasz nazwę pakietu który nie istnieje to dostaniesz coś takiego
W: Nie udało się odnaleźć pakietu vimrc
Pakiet zainstalowany
To prawda.
lessmian2 pisze:Już prędzej tak:

Kod: Zaznacz cały

wyplute=`apt-cache policy $1 2>&1 >/dev/null | grep -c "brak|Nie"`
A to już nie, gdyż w ten sposób wszystkie pakiety są uważane za zainstalowane.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Tak, masz rację. Z resztą jak teraz na to patrzę, to to nie ma prawa działać poprawnie ;-) Lepiej jest tak:

Kod: Zaznacz cały

if [ `dpkg -l | grep -c $1` == 0 ] 
then 
        echo "Nie ma takiego pakietu" 
else 
        echo "Pakiet zainstalowany" 
fi
ODPOWIEDZ