![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Flyt Command og udrejse status problem | visingha | Shell Programmering og Scripting | 10 | 09-13-2008 09:08 PM |
| Flyt Command og udrejse status problem | visingha | UNIX for dummyer Spørgsmål & svar | 1 | 09-12-2008 03:14 AM |
| exit status kører java classpath i UNIX shell | mmcds | Højtstående Programmering | 2 | 08-02-2007 11:06 PM |
| kontrol exit status af en shell script | kdipankar | Shell Programmering og Scripting | 2 | 05-09-2006 02:08 AM |
| Problemet med exit status | diganta | Shell Programmering og Scripting | 1 | 09-28-2005 09:34 AM |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
||||
|
sh rekursiv sub-shell exit status problem
Hej
Jeg forsøger at påvise exit status af en rekursiv funktion, som jeg kører som en sub-shell. Nedenfor har jeg nævnt en del af shell script fil, som jeg kører ... ked af det stadig lidt lang forpustet: -- 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 kører shell-script, jeg får 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 Hvad jeg dont forstå, hvorfor jeg ikke får den "ERR2 ???". Jeg får ERR1 ud, fordi addFile giver 1, men jeg havde håbet at få ERR2??? "Ud, fordi de subshell derefter afgang med exit 1. Jeg selvfølgelig er savnet noget her og vil være taknemmelig, hvis nogen kan hjælpe? Tak Senest redigeret af Philp; 01-07-2009 kl 05:58 AM.. Årsag: tilføjet kode tags |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|