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 è insstallato!

$

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, 18:02

sciamano's gravatar image

sciamano
10368

modificato 10 Jan, 18:18


Scusatemi per la mia ignoranza! Non avevo considerato stdout che stderr

con la linea:

dpkg -s nome-software > /dev/null

rediriza solo stdout

mentre con la linea:

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

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

Vabbé ho risolto! saluti...

coll. permanente

ha risposto 10 Jan, 19:12

sciamano's gravatar image

sciamano
10368

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,061
×104

domanda posta: 10 Jan, 18:02

domanda visualizzata: 81 volte

ultimo aggiornamento: 10 Jan, 19:12

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

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