Sprawdzanie stanu pakietów w Bashu
Sprawdzanie stanu pakietów w Bashu
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''?
- jasiekmarc
- Posty: 88
- Rejestracja: 27 września 2009, 20:05
- Lokalizacja: Wrocław
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
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
Tak średnio raczej, bo jak podasz nazwę pakietu który nie istnieje to dostaniesz coś takiegojasiekmarc pisze:wyplute=`apt-cache policy $1 | grep -c brak`
Już prędzej tak:W: Nie udało się odnaleźć pakietu vimrc
Pakiet zainstalowany
Kod: Zaznacz cały
wyplute=`apt-cache policy $1 2>&1 >/dev/null | grep -c "brak|Nie"`
- jasiekmarc
- Posty: 88
- Rejestracja: 27 września 2009, 20:05
- Lokalizacja: Wrocław
To prawda.lessmian2 pisze:Tak średnio raczej, bo jak podasz nazwę pakietu który nie istnieje to dostaniesz coś takiegojasiekmarc pisze:wyplute=`apt-cache policy $1 | grep -c brak`W: Nie udało się odnaleźć pakietu vimrc
Pakiet zainstalowany
A to już nie, gdyż w ten sposób wszystkie pakiety są uważane za zainstalowane.lessmian2 pisze:Już prędzej tak:Kod: Zaznacz cały
wyplute=`apt-cache policy $1 2>&1 >/dev/null | grep -c "brak|Nie"`
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