The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Errore di stampa con il set di comando Shribigb Shell scripting e di programmazione 0 03-06-2009 06:08 PM
catrame errore uscita ritardata forma permeabili errore chayato Linux 1 02-06-2009 12:07 AM
Nel comando shell ksh - Stampa "ABC" è dare errore sagarjani Shell scripting e di programmazione 2 10-08-2008 04:32 PM
Custom pagina di errore se l'autenticazione non riesce tomcat sebagra UNIX e Linux Applicazioni 0 05-06-2008 05:10 PM
a comando non a329743 UNIX e avanzata per utenti esperti 1 10-05-2006 10:08 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 47
Come errore di stampa e di uscita, se il comando non riesce?

Eventuali suggerimenti per ragazzi sulla stampa di un certo messaggio di errore per stderr e dovrebbe uscire un comando non all'interno di un ksh script? Sto cercando di uscita null alcuni file.

Touch non è adatto come ho bisogno di nulla per loro.
print ""> file non è adatto come ho bisogno di controllare elsehere per 0bytes se sono o meno.

Ho provato questi esempi qui di seguito e nessuno funziona correttamente. Non voglio avere a mettere un controllo dopo ogni comando come: --

Codice:
if [[ $? -ne 0 ]];then
   print "error blah blah" >&2
   exit 2
fi
Qui di seguito i test non funzionano correttamente. I'm guessing sua deposizione qualcosa.

Codice:
OUTFILE=/tmp/out

# Null outfiles. Security already checked

> ${OUTFILE} || print "ERROR: blah blah \n" >&2 ; exit 2   #doesnt work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 ; exit 2 )  #doesn't work

> ${OUTFILE} || (print "ERROR: blah blah \n" >&2 && exit 2) #doesnt work

if [[ -n "$(> ${OUTFILE} 2>&1)" ]];then
     print "ERROR: blah blah \n" >&2
     exit 2
fi    # doesnt work
Tutte le idee o alternative?
  #2 (permalink)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 13
In particolare su relazioni e di uscire, questo è un po 'più condensato idioma:

Codice:
test $condition || { print "Crap blew up; exiting"; exit 2; }
Si potrebbe anche direttamente prova per il risultato del vostro comando:

Codice:
command || { print "Crap blew up; exiting"; exit 2; }
Mi piace la lettura ad alta voce che a me come "o si fa questo o DIE!", Come se threathening lo script.

Ultimo a cura di EagleFlyFree; al 04/23/2009 02:17 PM..
  #3 (permalink)  
Old 04-23-2009
lavascript lavascript is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 47
Grazie dude thats lavorato come un fascino.

Mi sembra quasi non vi è stato, ma non utilizzare il corretto ()

Potrebbe spiegare la differenza tra () e () nel gruppo di comando? Anche i notied l'; alla fine prima di) è di vitale importanza il comando successivo altrimenti non funziona.

ad esempio,

Codice:
This works and exits if cant null but echos got to here if can.

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2; }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2; }

echo "got to here"

This doesnt work and never gets to echo even if null is successful

> ${OUTFILE} || { print "ERROR: cannot null output file. Exiting\n" >&2; exit 2 }
> ${TMPFILE} || { print "ERROR: cannot null tmp file. Exiting\n" >&2; exit 2 }

echo "got to here"
  #4 (permalink)  
Old 04-23-2009
EagleFlyFree EagleFlyFree is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 13
() Esegue le dichiarazioni in una nuova subshell, con Stato separato. () Esegue roba nella shell corrente.

Esempio:

Codice:
(aVariable="hello"); echo $aVariable
ciò non di stampa "ciao", perché la variabile è stato assegnato all'interno di una nuova shell, il cui stato è stata eliminata quando la () si è conclusa espressione. Pensate di definizione della variabile in C; variabili di vivere e morire all'interno del blocco in cui sono dichiarati.

Codice:
{aVariable="hello"; }; echo $aVariable
stampe questo "ciao", perché la variabile è stato assegnato nella stessa shell come la prossima dichiarazione.

E 'la stessa differenza come:
Codice:
sh myScript.sh
e
Codice:
source myScript.sh


Inoltre, sì, avete bisogno di un punto e virgola alla fine l'ultima dichiarazione all'interno (); è così che il serbatoio della grammatica è definita.
Tipo di come si può fare questo:
Codice:
if $condition; then $statements; fi
o del presente, con a capo invece di virgola per separare le parti sintassi:
Codice:
if $condition
then
    $statements
fi
Secondo la pagina man di bash, è diverso da () (e), perché sono parole riservate invece di metacaratteri, il che significa che non si rompe automaticamente causa parola. Presumibilmente lo stesso vale per il resto del guscio.

Ultimo a cura di EagleFlyFree; al 04/23/2009 02:14 PM..
  #5 (permalink)  
Old 04-24-2009
lavascript lavascript is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 47
Dude thats reale grande e uno informativo risposta. Thanks a lot. Certo che mi ha concesso la sua una migliore comprensione del serbatoio e non solo cercando le cose fino a quando non lavoro
  #6 (permalink)  
Old 04-24-2009
EagleFlyFree EagleFlyFree is offline
Utente Registrato
  
 

Iscriviti Data: aprile 2009
Interventi: 13
Non c'è di che, mi piace yapping su bash.
La sua pagina di manuale è lungo e arduo, ma sfogliando ogni volta in un po 'di tempo, siete tenuti a imparare grande curiosità ogni volta.
Le parti su storia e readline sono particolarmente fresco, e che sono a portata di mano e divertente da usare.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 04:01 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0