Collecte les résultats dans la boucle for lors de l'exécution du script shell


0

J'essaie de collecter les résultats de "svn info" pour les dossiers sélectionnés en exécutant un script shell, comme ceci:

for f in "$@"; do
    svn info $f | tee -a $log_file
done

Mais ce n'est pas du travail. Comment puis-je collecter chaque résultat dans la boucle?


Cela fonctionne-t-il si vous l'exécutez directement dans Terminal? Que signifie exactement "ne fonctionne pas": message d'erreur, fichier journal vide, pas de résultat? Que comptez-vous faire avec le résultat obtenu?
nohillside

Il fonctionne avec un chemin spécifié mais pas dans la boucle @patrix
NFDream

$log_filepointe-t-on? S'il s'agit d'une référence relative (ou simplement d'un nom de fichier), vous ne disposez peut-être pas d'autorisations d'écriture dans le répertoire dans lequel le script est exécuté. Même chose pour les noms de projet dans $@.
nohillside

Un "log.txt" existe déjà, je suis sûr des autorisations d'écriture. @patrix
NFDream

1
Utilisez des techniques de débogage standard, puis ajoutez des echoinstructions à chaque fois que cela vous semble judicieux :-)
nohillside

Réponses:


-1

Le problème est que "Automator" ne prend pas en charge certains encodages tels que GB18030.Une fois l’encodage du nom de fichier associé, ils ne peuvent pas être convertis en utf-8, il renvoie une erreur.


Pouvez-vous ajouter le message d'erreur à la question ? Je soupçonne que le problème est avec le shell, pas avec Automator.
nohillside

Mon erreur, ce n'est pas causé par utf-8, mais par un nom de fichier avec un encodage tel que "Chinois (GB18030)", il ne peut pas être converti en utf-8. @patrix
NFDream
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.