PDA

Visualizza la versione completa : [script bash] Inibire output comando


rictato
07-05-2009, 11:45
Salve ragazzi,
vorrei sapere se è possibile non visualizzare l'output di un comando in uno script shell. Vengo e mi spiego:
quando si scrive un comando in uno script bash, verrà prodotto su terminale l'output corrispondente a quel comando quando verrà eseguito tale script. E' possibile evitare che questo avvenga?

Grazie per le vostre risposte :ciauz:

detroit
07-05-2009, 11:59
cmd > /dev/null :)

http://www.calabriaunix.org/bash/guida_shell_scripting.html#redirezione

rictato
07-05-2009, 12:05
Grazie mille!!!!
Ora il problema è un altro: mi da errore su un if!! Posto il codice



#!/bin/bash

if ls /home/zamu/ | find schermata.jpg > /dev/null
then
zenity --warning --text="Nome già presente. Scegliere altro nome"
valore=`zenity --entry --text="Specificare nuovo nome del file" --entry-text="Inserisci qui il nuovo nome"`
if [$valore = "Inserisci qui il nuovo nome"]
then
zenity --error --text="Impossibile salvare. File non specificato"
# else
# import -window root ${valore}
fi
#else
# import -window root schermata.jpg
fi


Il problema sta nell'if dove c'è il valore ritornato da zenity! mi da comando non valido...come mai?

nifriz
07-05-2009, 12:11
Secondo me il
"> dev/null" va alla fine, dopo fi

nifriz
07-05-2009, 12:12
Originariamente inviato da nifriz
Secondo me il
"> dev/null" va alla fine, dopo fi

No mi quoto da solo, ho detto una cazzata!

GUARDA QUI
if cmp a b &> /dev/null # Sopprime l’output.
then echo "I file a e b sono identici."
else echo "I file a e b sono diversi."
fi

detroit
07-05-2009, 12:13
no il problema sta qua

if ls /home/zamu/ | find schermata.jpg > /dev/null

non puoi scriverlo in questo modo.Che cosa vuoi fare? Un confronto con if va sempre racchiuso tra parentesi quadre ed i comandi tra apici rovesciati o meglio ancora inglobati in variabili.

rictato
07-05-2009, 14:52
Grazie detroit.
Mi sto avvicinando pian piano alla programmazione shell e sistemando un pò il codice e seguendo la guida da te suggerita, sto pian piano riuscendo a risolvere il problema postato!!!

Grazie ancora e alla prossima :ciauz: :ciauz: :ciauz:

toraz
07-05-2009, 16:04
if ls /home/zamu/ | find schermata.jpg > /dev/null
then ...
else ...
fi

Scritto così è del tutto lecito, strampalato ma lecito. Se vuoi sapere se il file esiste basta


if [ -a /home/zamu/schermata.jpg ]
eccetera...


L'errore sta dopo l'altro if, intorno alle parentesi quadre (tutte e due) ci vuole uno spazio. Devi scrivere


if [ $valore = "vattelapesca" ]
eccetera...

Loading