The UNIX and Linux Forums  


Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
Déplacer de commandement et d'état de sortie problème visingha De programmation et de script Shell 10 09-13-2008 09:08 PM
Déplacer de commandement et d'état de sortie problème visingha UNIX pour les nuls Questions et réponses 1 09-12-2008 03:14 AM
le statut de sortie de classe en cours d'exécution java shell unix mmcds High Level Programming 2 08-02-2007 11:06 PM
contrôle le statut de sortie d'un script shell kdipankar De programmation et de script Shell 2 05-09-2006 02:08 AM
Problème avec le statut de sortie diganta De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 01-06-2009
Philp philp is offline
Registered User
  
 

Date d'inscription: janvier 2009
Messages: 2
sh recursive sous-shell sortie problème de statut

Salut
Je tente de détecter la sortie d'un statut de fonction récursive dont je suis fonctionnant comme un sous-shell. Ci-dessous, je viens de citer une partie du fichier de script shell que je suis désolé sa marche ... encore un peu long fleuve: --


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

J'ai créé le répertoire suivant dans ma structure de répertoire local: --
XXX
fichiers xyz
dir \u003d YYY
fichiers x1 y1 z1
dir \u003d ZZZ
phil fichiers x2 y2 z2

Quand je lance le shell-script-je obtenir de la sortie: --
.//./ 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

Qu'est-ce que je ne comprends c'est pourquoi je ne suis pas d'obtenir le "ERR2 ???". I get err1 parce AddFile retourne 1, mais j'ai été l'espoir d'obtenir ERR2? "Parce que les subshell sort avec la sortie 1.
Je suis évidemment manquer quelque chose ici et serait reconnaissant si quelqu'un peut m'aider?

Merci

Dernière édition par Philp; au 01.07.2009 05:58 AM.. Motif: Ajout de balises de code
 

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 06:38 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0