![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| 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 |
| Sposta Comando di stato e di uscita problema | visingha | Shell scripting e di programmazione | 10 | 09-13-2008 09:08 PM |
| Sposta Comando di stato e di uscita problema | visingha | UNIX for Dummies Domande & Risposte | 1 | 09-12-2008 03:14 AM |
| stato di uscita in esecuzione nel classpath java shell UNIX | mmcds | Di programmazione ad alto livello | 2 | 08-02-2007 11:06 PM |
| verifica stato di uscita di uno script di shell | kdipankar | Shell scripting e di programmazione | 2 | 05-09-2006 02:08 AM |
| Problema con stato di uscita | diganta | Shell scripting e di programmazione | 1 | 09-28-2005 09:34 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
sh ricorsiva sub-shell exit status problema
Salve
Sto cercando di individuare l'uscita di un ricorsiva la funzione che sto girando come una sub-shell. Qui di seguito sono elencati parte del file di script di shell che mi dispiace ... la sua esecuzione ancora un po 'lungo winded: -- Codice:
#!/bin/sh
addFile()
{
fileName="${1##*/}" # Extract filename from path.
if [ $fileName == "phil" ]
then
return 1 #Kick off error...
else
return 0
fi
}
addCommitFiles()
{
# Traverse to database directory or below
cd "$topDir/$1"
if [ $? != 0 ]
then
echo "topDir error $topDir/$1"
exit 1 # Treat as fatal error.
fi
# List all files/dirs in this directory.
ls | while read i
do
# Check if directory.
if [ -d "$i" ]
then
# Pass in full relative path to topDir.
( addCommitFiles "$1/$i" )
ret1=$? # This is never non-zero???
echo "RET=$ret1 != 1"
if [ $ret1 != 0 ]
then
echo "ERR2???"
exit 1 # Treat as fatal error.
fi
echo "ERR3"
else
echo "${rootDir}/$1/${i}"
addFile "$1/$i"
if [ $? != 0 ]
then
echo "ERR1"
exit 1 # We get this error and would exoect
fi
fi
done
exit 0
}
# Main
usrNam="XXX"
topDir=`pwd`
rootDir="./"
(addCommitFiles "./$usrNam")
if [ $? != 0 ]
then
echo "ERROR"
else
echo "OK"
fi
XXX file xyz dir \u003d YYY file x1 y1 z1 dir \u003d ZZZ phil file x2, y2, z2 Quando ho eseguito la shell script di ottenere il risultato: -- .//./ XXX / a .//./ XXX / b .//./ XXX / c .//./ XXX/YYY/x1 .//./ XXX/YYY/y1 .//./ XXX/YYY/z1 .//./ XXX / YYY / ZZZ / phil Err1 RET \u003d 0! \u003d 1 ERR3 RET \u003d 0! \u003d 1 ERR3 OK I dont capire ciò che è il motivo per cui non ho ricevuto il "ERR2 ???". Ho err1 perché addFile restituisce 1, ma speravo di arrivare ERR2? "Perché subshell poi termina con l'uscita 1. Mi manca qualcosa, ovviamente, sono qui e sarei grato se qualcuno può aiutare? Grazie Ultimo a cura di Filippo; al 01/07/2009 05:58 AM.. Motivo: Aggiunto codice tag |
|
||||
|
Grazie per la visita aiutare
1) Sorry I did'nt conoscere il codice ... I tag sono stati aggiunti. 2) \u003d\u003d funziona per me? Forse la mia versione di bash, tranne due? 3) Brilliant! Thankyou "Di tre non è necessario per il comando ls, ed è la causa del problema, dal momento che tutti gli elementi di una conduttura vengono eseguiti in subshells". Questo fissa il mio problema. I dont effettivamente ancora a capire perché, ma mi hanno un letto. Thank You! 4) mi ricorderò di utilizzare $ PWD in futuro. Nel mio codice originale non ho bisogno di conoscere la directory corrente ... questo è stato necessario per ridurre questa versione. Grazie ancora per tutto il vostro aiuto! |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|