![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Flytta kommandotangenten och utresa status problem | visingha | Shell-programmering och Skript | 10 | 09-13-2008 08:08 |
| Flytta kommandotangenten och utresa status problem | visingha | UNIX for Dummies Frågor & Svar | 1 | 09-12-2008 02:14 |
| exit status köra java Classpath i UNIX | mmcds | High Level Programming | 2 | 08-02-2007 10:06 |
| kontroll exit status av ett skal script | kdipankar | Shell-programmering och Skript | 2 | 05-09-2006 01:08 |
| Problem med exit status | diganta | Shell-programmering och Skript | 1 | 09-28-2005 08:34 |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
||||
|
sh rekursiva delsektion skal exit status problem
Hej
Jag försöker att upptäcka Returvärdet en rekursiv funktion som jag kör som en sub-shell. Nedan redovisar jag en del av shell script-fil som jag kör ... sorry dess fortfarande lite lång omständligt: -- Kod:
#!/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 jag kör shell-script jag få 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 Vad jag dont förstå är varför jag inte får det "ERR2 ???". Jag får ERR1 ut eftersom addFile återvändande 1, men jag hoppades att få ERR2??? "Ut eftersom subshell sedan avslutas med utgång 1. Jag är uppenbarligen missat något och skulle vara tacksam om någon kan hjälpa? Tack Senast redigerad av Philp, 01-07-2009 at 05:58.. Anledning: Tillagd Kod taggar |