Strona 1 z 1

Sprawdzanie stanu pakietów w Bashu

: 05 listopada 2009, 16:49
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''?

: 05 listopada 2009, 17:26
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

: 05 listopada 2009, 17:34
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

: 05 listopada 2009, 17:44
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"`

: 05 listopada 2009, 18:37
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.

: 05 listopada 2009, 18:51
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