The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

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
Secure Recherche retours Meilleurs résultats iBot Mises à jour d'Oracle (RSS) 0 04-06-2008 06:10 AM
nécessité de trouver des résultats pimentelgg De programmation et de script Shell 9 12-20-2007 06:00 PM
trouver des résultats Carmen123 UNIX pour les nuls Questions et réponses 5 08-10-2005 11:27 AM
script retourne rapidement kburrows UNIX pour les nuls Questions et réponses 3 10-06-2003 11:12 AM
cant trouver la commande qui renvoie ligne jeffersno1 UNIX pour les nuls Questions et réponses 2 11-15-2001 04:14 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
blt123 blt123 is offline
Registered User
  
 

Join Date: Feb 2002
Posts: 19
FIND retourne des résultats différents dans le script

Quand j'exécute cette ligne à l'invite de commande, je reçois une réponse différente que lorsque je l'exécuter dans un script? Toutes les idées sur la façon de résoudre? J'essaie de trouver tous les fichiers / dossier dans un répertoire sauf les fichiers qui commencent avec le mot fichier.
Une fois que je commande pour obtenir ce travail, je vais ajouter le "supprimer" une partie de la commande. Juste essayer de faire en sorte que j'ai le droit de tous les fichiers en premier.

LIGNE DE COMMANDE
svdw1234: find. -mtime -1! nom de fichier \ *
.
. / test_purge
svdw1234:


SCRIPT

+ Trouver. -mtime -1! nom de fichier \ *
.
. / test_purge
. / test_purge / file_test_purge_subdir.txt
. / file_sqr_test.txt
. / file.txt
+ Return_code \u003d 0

Merci,
Barbara
  #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
La syntaxe est de type excentrique, et les chances sont de votre interactive script est exécuté par quelque chose comme ksh ou bash, alors que votre script est probablement exécuté par / bin / sh.

En particulier, je suppose que le non cotés d'exclamation peut avoir certains effets secondaires inconnus.

Essayez de réparer la commande find à adhérer à la spec:

Code:
find . -mtime -1 -a \! -name file\*
Toujours vérifier si le chemin est quelque peu différent dans le script, et / ou si vous avez des fonctions ou des pseudonymes qui interviennent dans le shell interactif.
  #3 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Cela devrait fonctionner aussi:

Code:
find . -mtime -1 ! -name "*file*"
Observe
  #4 (permalink)  
Old 04-25-2008
shamrock shamrock is offline Forum Advisor  
Registered User
  
 

Join Date: Oct 2007
Lieu: États-Unis
Posts: 750
login shell ou ligne shebang

Est-ce que votre shebang ligne différente de celle de votre shell de login. Peut-être la! est d'avoir des effets secondaires indésirables et, depuis que vous êtes intéressé à ajouter les fichiers de type switch aussi.

Code:
find . -mtime -1 -type f ! -name "file*"
  #5 (permalink)  
Old 04-25-2008
blt123 blt123 is offline
Registered User
  
 

Join Date: Feb 2002
Posts: 19
J'ai changé la coque pour faire correspondre le script et toujours pas de bons résultats?

svdw0088: ksh
$ Find. ! -name "fichier *"-mtime -1
.
. / test_purge
$

SCRIPT première ligne:

#! / bin / ksh

SCRIPT de sortie:

+ Trouver. ! -name "fichier *"-mtime -1
.
. / test_purge
. / test_purge / file_test_purge_subdir.txt
. / file_sqr_test.txt
. / file.txt
+ Return_code \u003d 0

Il affiche toujours les fichiers qui commencent avec le mot fichier. Je ne veux exclure également les structures de répertoires.
Merci,
Barbara

Dernière édition par blt123; au 04.25.2008 04:23 PM..
  #6 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4308
Utilisez des guillemets:

Code:
find . -mtime -1 ! -name "*file*"
Observe
  #7 (permalink)  
Old 04-26-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
Franklin52: Ce n'est pas elle, les guillemets simples sont plus que doubler, de sorte que le résultat devrait être la même (vous souhaitez empêcher l'astérisque d'être développé par le shell).

blt123: Pouvez-vous exécuter le shell interactif avec -x trop?

Code:
prompt$ ksh -x
$ find . ! -name 'file*' -mtime -1
+ find . ! -name file* -mtime -1
.
./test_purge
./test_purge/file_test_purge_subdir.txt
./file_sqr_test.txt
./file.txt
$ exit
+ exit
+ Voir les lignes là-bas? Vous pouvez les obtenir à partir d'une session interactive, tout comme à partir d'un script. (Pas besoin de lancer un subshell soit, il vous suffit de dire set-x pour permettre à ceux-ci; set + x de les reculer.)

La question cruciale est de savoir si la commande find est étendu à quelque chose d'inattendu.

Aussi, vous pouvez essayer avec un chemin codé en dur à trouver votre binaire (/ usr / bin / find je pense)?
Closed Thread

Bookmarks

Tags
mtime

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 11:09 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