![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| Bewegen Sie Befehls-und Exit-Status Problem | visingha | Shell Programmierung und Scripting | 10 | 09-13-2008 09:08 PM |
| Bewegen Sie Befehls-und Exit-Status Problem | visingha | UNIX for Dummies Questions & Answers | 1 | 09-12-2008 03:14 AM |
| Exit-Status Ausführen von Java-Klassenpfad in UNIX-Shell | mmcds | High-Level-Programmierung | 2 | 08-02-2007 11:06 PM |
| Kontrolle Exit-Status von einem Shellskript | kdipankar | Shell Programmierung und Scripting | 2 | 05-09-2006 02:08 AM |
| Problem mit der Exit-Status | diganta | Shell Programmierung und Scripting | 1 | 09-28-2005 09:34 AM |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
||||
|
sh recursive sub-Shell-Exit-Status Problem
Hi Ich versuche zu erkennen, die Exit-Status einer rekursiven Funktion, die ich laufen als Sub-Shell. Ich habe unten aufgeführten Teil des Shell-Skript-Datei, die ich am laufen ... sorry seiner immer noch ein wenig lang winded: -- Code:
#!/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
Ich habe die folgenden Verzeichnis-Struktur in meinem lokalen Verzeichnis: -- XXX Dateien xyz dir \u003d YYY Dateien x1 y1 z1 dir \u003d ZZZ Dateien phil x2 y2 z2 Wenn ich die Shell-Skript ich die Ausgabe: -- .//./ 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 Was ich dont verstehen ist, warum ich nicht die "ERR2 ???". Ich ERR1, weil addFile gibt 1 zurück, aber ich hatte gehofft, um ERR2? ", Weil die Subshell dann beendet mit exit 1. Ich bin natürlich etwas fehlt hier und wäre dankbar, wenn jemand helfen kann? Danke Zuletzt bearbeitet von Philp; am 01-07-2009 05:58 AM.. Grund: Code-Tags hinzugefügt |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|