The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 01-06-2009
philp philp is offline
Registreret Bruger
  
 

Join Date: Jan 2009
Stillinger: 2
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
Jeg har lavet følgende mappestruktur i mit lokale bibliotek: --
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
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 07:25 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0