![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Flytt Kommando og exit status problem | visingha | Shell programmering og Skripting | 10 | 09-13-2008 08:08 |
| Flytt Kommando og exit status problem | visingha | UNIX for Dummies Spørsmål og svar | 1 | 09-12-2008 02:14 |
| exit status kjører Java classpath i unix shell | mmcds | High Level Programmering | 2 | 08-02-2007 10:06 |
| sjekking exit for en shell script | kdipankar | Shell programmering og Skripting | 2 | 05-09-2006 01:08 |
| Problemet med exit status | diganta | Shell programmering og Skripting | 1 | 09-28-2005 08:34 |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
||||
|
sh Rekursiv sub-shell exit status problem
Hei
Jeg prøver å oppdage avkjørselen statusen til en selvrefererende funksjon som jeg kjører som en sub-skall. Nedenfor har jeg listet opp en del av shell script fil som jeg kjører ... beklager det fremdeles litt lang omstendelig: -- 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
XXX filer xyz dir \u003d YYY filer x1 Y1 Z1 dir \u003d ZZZ filer phil x2 y2 z2 Når jeg kjører shell-scriptet får jeg output: -- .//./ 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 Hva jeg dont forstår ikke hvorfor jeg ikke får "ERR2 ???". Jeg får ERR1 ut fordi addFile returnerer 1, men jeg håper å få ERR2?? "Ut fordi underskall deretter avsluttes med exit 1. Jeg tydeligvis savner noe her, og ville være takknemlig hvis noen kan hjelpe? Takk Sist endret av Philp; 01-07-2009 kl 05:58.. Begrunnelse: Lagt til Code tags |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|