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
la vérification de l'existence du tableau de l'oracle KJS SUN Solaris 0 10-19-2007 04:21 AM
Vérifier l'existence d'un fichier .. igandu De programmation et de script Shell 7 06-13-2007 04:47 AM
contrôle de l'existence de fichiers DILEEP410 De programmation et de script Shell 3 01-24-2007 12:43 PM
Dossier existence mpang_ De programmation et de script Shell 2 03-27-2006 12:27 PM
XML dans le fichier plat à Unix oscarr UNIX for Advanced & Expert Users 2 08-01-2001 09:11 PM

Closed Thread
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 04-25-2008
Ariean Ariean is offline
Registered User
  
 

Date d'inscription: avril 2008
Posts: 25
Contrôle de l'existence d'un fichier plat en UNIX!

Salut tous,

J'ai une exigence dans le cas i nécessité de vérifier l'existence d'un fichier et ensuite d'exécuter des commandes liées à pmcmd informatica. J'ai essayé de nombreuses façons, mais sans succès pourrait vous, s'il vous plaît jeter un peu de lumière. Voici les exemples de codes que j'ai écrit.

Exemple 1:

#! / bin / ksh
file_path \u003d / export / home / orainfodev / sam s
filename \u003d "voke.txt"
pour le fichier dans $ file_path; faire
[[-F $ filename]]
pmcmd startworkflow-u Administrator-p SADMIN-s odsdbq1: 4001-f IR_Custom WF_Test_Mapping
fait

Exemple 2:

#! / bin / ksh
if (!-e "/ u01/app/informatica/7.1.4/server/TgtFiles/sample.txt")
puis
pmcmd startworkflow-u Administrator-p SADMIN-s odsdbq1: 4001-f IR_Custom WF_Test_Mapping
autre
echo "Désolé ne peut pas démarrer le flux de travail car il n'y a pas de fichier existant dans le dossier"
fi

Exemple 3:

#! / bin / ksh
filename \u003d "export / home / orainfodev / invoke.txt"
if test-f "$ filename", puis
echo "le fichier existe"
autre
echo "le fichier n'existe pas"
fi


Exemple 4:

#! / bin / ksh
echo "S'il vous plaît, entrez un nom de fichier"
lire fname
if test-f "$ fname"
then echo "$ fname existe"
autre
echo "$ fname n'existe pas"
fi

Merci & Regards,
Ariean.
  #2 (permalink)  
Old 04-25-2008
ère era is offline Forum Advisor  
Inutile de Herder Cats (en congé sabbatique)
  
 

Join Date: Mar 2008
Location: / il / est / que / bin / sh
Messages: 3652
Tous vos efforts sont très proches. Pour autant que je peux dire, le dernier doit avoir travaillé - pouvez-vous dire le message d'erreur que vous obtenez?

Citation:
Exemple 1:

#! / bin / ksh
file_path \u003d / export / home / orainfodev / sam s
filename \u003d "voke.txt"
pour le fichier dans $ file_path; faire
[[-F $ filename]]
pmcmd startworkflow-u Administrator-p SADMIN-s odsdbq1: 4001-f IR_Custom WF_Test_Mapping
fait
La commande-f est bien, mais que vous n'utilisez pas le résultat de quoi que ce soit. Vous pouvez envelopper que, dans un "si" conditionnel ou d'autres et il aurait travaillé. En outre, la file_path doit être mis entre guillemets lors de la déclarer. Vraisemblablement, le file_path chemins des répertoires dans lesquels vous souhaitez rechercher des voke.txt?

Code:
for file in /export/home/orainfodev/sam s ; do
    if test -f $file/voke.txt; then
        pmcmd startworkflow -u Administrator -p SADMIN -s odsdbq1:4001 -f IR_Custom WF_Test_Mapping
    else
        echo "$0: $file/voke.txt: not found" >&2
    fi
done
(N'est-ce pas le flux de commande censé faire référence à votre fichier de vérification de la aussi, si? Soit en descendant dans le répertoire où vous avez trouvé, ou par l'intermédiaire d'un paramètre de ligne de commande.)

Citation:
Exemple 2:

#! / bin / ksh
if (!-e "/ u01/app/informatica/7.1.4/server/TgtFiles/sample.txt")
puis
pmcmd startworkflow-u Administrator-p SADMIN-s odsdbq1: 4001-f IR_Custom WF_Test_Mapping
autre
echo "Désolé ne peut pas démarrer le flux de travail car il n'y a pas de fichier existant dans le dossier"
fi
Les parenthèses dans le «si» ne sont pas la syntaxe correcte, mais encore une fois, très proche.

Citation:
Exemple 3:

#! / bin / ksh
filename \u003d "export / home / orainfodev / invoke.txt"
if test-f "$ filename", puis
echo "le fichier existe"
autre
echo "le fichier n'existe pas"
fi
Vous avez besoin d'un point-virgule avant le "ensuite", ou le mettre sur une nouvelle ligne. Ensuite, cela fonctionnera. Sheer malchance vous n'avez pas trébucher sur la solution à ce point.

Citation:
Exemple 4:

#! / bin / ksh
echo "S'il vous plaît, entrez un nom de fichier"
lire fname
if test-f "$ fname"
then echo "$ fname existe"
autre
echo "$ fname n'existe pas"
fi
Cela fonctionne pour moi, sous bash. Certaines coquilles peuvent être pointilleux sur l'exigence que les nouvelles lignes après "puis" et "autre", peut-être.
  #3 (permalink)  
Old 04-25-2008
DukeNuke2's Avatar
DukeNuke2 DukeNuke2 is offline Forum Staff  
Soulman
  
 

Date d'inscription: juillet 2006
Localisation: Allemagne, Berlin
Posts: 2983
J'ai passé le fil de "Solaris" de "shell scripts ..." parce que ce n'est pas une question solaris.

greets,
DN2
  #4 (permalink)  
Old 04-25-2008
Ariean Ariean is offline
Registered User
  
 

Date d'inscription: avril 2008
Posts: 25
Merci pour votre réponse, en fonction de votre suggestion, j'ai essayé de réécrire le code ci-dessous, mais la façon dont certains que je ne comprenais pas pourquoi il est l'exécution de la déclaration de la part d'autre, même après l'état dans la déclaration est si vrai ou satisfait ou pmcmd commande se exécuté. Pourriez-vous s'il vous plaît jeter un peu de lumière. Merci.

\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

#! / bin / ksh
pour le fichier dans / export / home / orainfodev / sam s; faire
if test-f $ file / invoke.txt puis
pmcmd startworkflow-u Administrator-p SADMIN-s odsdbq1: 4001-f IR_Custom WF_Test_Mapping
autre
echo "$ 0: $ file / invoke.txt: not found"> & 2
# echo "Impossible de ne pas pouvoir trouver le fichier, ne peut pas exécuter le workflow grâce!"
fi
fait

\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
  #5 (permalink)  
Old 04-25-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Date: Mar 2007
Lieu: Toronto, Canada
Messages: 2361
Citation:
Posté par Ariean View Post
Merci pour votre réponse, en fonction de votre suggestion, j'ai essayé de réécrire le code ci-dessous, mais la façon dont certains que je ne comprenais pas pourquoi il est l'exécution de la déclaration de la part d'autre, même après l'état dans la déclaration est si vrai ou satisfait ou pmcmd commande se exécuté. Pourriez-vous s'il vous plaît jeter un peu de lumière. Merci.

\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d

#! / bin / ksh
pour le fichier dans / export / home / orainfodev / sam s; faire

Pensez-vous vraiment l'intention de boucle de plus de deux fichiers, "/ export / home / orainfodev / sam" et "s"?

Si cela est destiné à être un fichier unique, il doit être cité. Et, si oui, pourquoi êtes-vous en utilisant une boucle?

Closed Thread

Bookmarks

Tags
commandes Unix

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:41 PM.


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