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/bashclear dpkg -s nome-software > /dev/null VER_P=$? echo "VER_P = $VER_P" if [ $VER_P -eq 0 ]; then
else
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. |
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... |
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- 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:
domanda posta: 10 Jan, 18:02
domanda visualizzata: 158 volte
ultimo aggiornamento: 10 Jan, 19:12