Sprawdź, czy NGINX jest zainstalowany na UBUNTU


7

Czy jest jakaś komenda sprawdzająca, czy NGINX jest już zainstalowany na UBUNTU Linux za pomocą polecenia / skryptu bash?

Próbowałem czegoś takiego

echo "BEGINNING INSTALLATION OF NGINX WEB SERVER"
echo
echo
echo "CHECKING TO SEE IF NGINX IS ALREADY INSTALLED"
service nginx > temp.install 2> temperr.install
echo 111
grep -c unrecognized temperr.install > temp2.install
echo 222
status = `cat temp2.install`
echo "NGINX STATUS $status" 

Jestem nowym użytkownikiem skryptów bashowych i dlatego nie jestem pewien, czy jest to najlepszy możliwy sposób podejścia do tego. Muszę napisać skrypt, który sprawdza, czy NGINX jest już zainstalowany. Jeśli nie jest zainstalowany, po prostu instaluje NGINX, w przeciwnym razie najpierw usuwa NGINX, a następnie ponownie go instaluje.


5
Jak odpkg -l | grep nginx

Wypróbowałem to, ale po prostu wraca do zachęty basha bez podania żadnego wyjścia.

3
@op Sprawdź status zwrotu echo $?zaraz po wydaniu dpkgpolecenia.

4
No cóż ... nie sprawdzałem statusu zwrotu, ale zmodyfikowałem nieco twoje polecenie i działa na mnie. To właśnie zrobiłem dpkg -l | grep -c nginx. Jeśli nginx jest zainstalowany, zwraca liczbę pakietów nginx, a jeśli nie jest zainstalowany, po prostu zwraca 0

Odpowiedzi:


10
if ! which nginx > /dev/null 2>&1; then
    echo "Nginx not installed"
fi

lub

if [ ! -x /usr/sbin/nginx ]; then
    echo "Nginx not installed"
fi

lub jeśli chcesz być specyficzny dla Debiana / Ubuntu:

if ! dpkg -l nginx | egrep 'îi.*nginx' > /dev/null 2>&1; then
    echo "Nginx not installed"
fi

jeśli jesteś w całej zwięzłości:

! test -x /usr/sbin/nginx && echo "Nginx not installed"

Tylko małe zastrzeżenie, że to tylko sprawdza, czy nginx jest zainstalowany w standardowy sposób. nie, jeśli jest skompilowany ze źródła i zainstalowany na przykład w / usr / local / bin
Lenne

Ostatnia odpowiedź jest niesamowita :)
Faris Rayhan

-1

Spróbuj tego:

command -v nginx

zainstaluj, jeśli nie jest zainstalowany:

command -v nginx || sudo apt install nginx
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.