Salve, sto realizzando un script in bash, mi serve sapere se un x programma o libreria sia già installata oppure no. Ho creato questo piccolo script:

#!/bin/bash                                                                                                                 
clear

dpkg -s nome-software > /dev/null

VER_P=$?

echo "VER_P = $VER_P"

if [ $VER_P -eq 0 ]; then

    echo "È installato"
else

    echo "Non è insstallato!"
fi

Ora vi dico qual'è il mio problema, se il programma è installato, tutto procede bene, cioè:

VER_P = 0

È installato

se il programma non è installato, ottengo questo risultato:

dpkg-query: il pacchetto "nome-software" non è installato e non è disponibile alcuna informazione
Usare "dpkg --info" (= "dpkg-deb --info") per esaminare gli archivi.

VER_P = 1

Non è installato!

quindi, la domanda è: perché dpkg, quando rileva che un programma non è installato mi stampa le sue informazioni nella finestra di terminale e non ridirige l'output nel file /dev/null? cosa sbaglio? qualcuno mi può gentilmente aiutare?

ps: non so se serve ma, sto usando ubuntu 22.10.

chiesto 10 Jan '23, 18:02

sciamano's gravatar image

sciamano
203811

modificato 14 Oct '23, 19:31

enzotib's gravatar image

enzotib ♦♦
14.1k113187


Scusatemi per la mia ignoranza! Non avevo considerato stdout che stderr.
Con la linea:

dpkg -s nome-software > /dev/null

reindirizza solo stdout, mentre con la linea:

dpkg -s nome-software &> /dev/null

Avevo dimenticato l'operatore &> che reindirizza sia stdout che stderr

Vabbé ho risolto! saluti...

coll. permanente

ha risposto 10 Jan '23, 19:12

sciamano's gravatar image

sciamano
203811

modificato 14 Oct '23, 19:30

enzotib's gravatar image

enzotib ♦♦
14.1k113187

La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×2,097
×105

domanda posta: 10 Jan '23, 18:02

domanda visualizzata: 359 volte

ultimo aggiornamento: 14 Oct '23, 19:31

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.