The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



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

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 01-06-2009
Philp philp is offline
Registrierte Nutzer
  
 

Join Date: Jan 2009
Beiträge: 2
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
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:30 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0