Script sous centos
Fermé
Chertsey2011
Messages postés
26
Date d'inscription
mercredi 29 novembre 2017
Statut
Membre
Dernière intervention
8 novembre 2021
-
27 févr. 2019 à 17:11
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 5 mars 2019 à 12:07
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 5 mars 2019 à 12:07
A voir également:
- Script sous centos
- Script vidéo youtube - Guide
- Script bat - Guide
- Executeur de script - Télécharger - Édition & Programmation
- Ghost script - Télécharger - Polices de caractères
- Script bouger souris ✓ - Forum C++
1 réponse
[Dal]
Messages postés
6174
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
2 février 2024
1 083
Modifié le 27 févr. 2019 à 18:29
Modifié le 27 févr. 2019 à 18:29
Salut Chertsey2011,
Tout d'abord, assures toi de bien disposer d'une copie des fichiers que tu veux traiter.. juste au cas où...
Ensuite, tu peux essayer ceci :
et voir si les fichier *.tmp sont créés comme tu le souhaites.
Si c'est bien le cas, tu peux supprimer les fichiers *.tmp, décommenter les lignes 10 et 11 ci-dessus et exécuter le script dans le répertoire concerné.
Dal
Tout d'abord, assures toi de bien disposer d'une copie des fichiers que tu veux traiter.. juste au cas où...
Ensuite, tu peux essayer ceci :
#!/bin/bash CURR_DIR="$(pwd | sed "s/.*\///")" JAVA_PKG="package $CURR_DIR;\n" for JAVA_FILE in *.java; do JAVA_FILE_TMP="$JAVA_FILE.tmp" echo "processing $JAVA_FILE as $JAVA_FILE_TMP" echo -e $JAVA_PKG | cat - $JAVA_FILE > $JAVA_FILE_TMP #echo "renaming $JAVA_FILE_TMP to $JAVA_FILE" #mv $JAVA_FILE_TMP $JAVA_FILE done
et voir si les fichier *.tmp sont créés comme tu le souhaites.
Si c'est bien le cas, tu peux supprimer les fichiers *.tmp, décommenter les lignes 10 et 11 ci-dessus et exécuter le script dans le répertoire concerné.
Dal
27 févr. 2019 à 18:53
;-(
devrait suffire ;-))
Modifié le 28 févr. 2019 à 05:28
la description est un peu vague.
je préfère , car il retourne le chemin absolu.
et je préfère que les scripts contiennent des chemins absolus.
en ayant précédé l'exécution du script d'un , c'est tout.
28 févr. 2019 à 06:51
28 févr. 2019 à 08:35
il n'y a pas quelque part parmi les best practices un passage sur les préférences à adopter en ce qui concerne les chemins indiqués dans les scripts ?
sinon, et/ou s'il insiste, en :
MAIS, cela sous-entend qu'il y a eu un dans le script; ce qui est le plus souvent inutile, et source d'erreurs : "est-ce que je suis ici ? ou là ? ou où ?" :)
Modifié le 28 févr. 2019 à 11:24
J'ai commencé ma réponse à ce topic alors qu'il était initialement posté sur le forum Programmation, et le temps que je poste la réponse, il a été déplacé par un modérateur ici, qui est, sans doutes l'endroit le plus approprié (bein qu'il y ait des sous-forums "batch" et "powershell" pour Windows, il n'y en a pas pour Bash ou autres shells).
C'est sympa de retrouver les anciens du forum Linux et les moins anciens :-)
Sur ma proposition en ligne 3 du script, c'est mon réflexe de programmeur Perl que de vouloir utiliser les regexp pour résoudre tous les problèmes :-) et il y a bien sûr les deux solutions tout à fait adaptées que vous décrivez pour obtenir le nom du répertoire courant, qui sont plus directes.
Sur les autres aspects de votre échange :
- Chertsey2011 indique très clairement qu'il veut que son script opère sur un seul répertoire et qu'il doit exécuter le script directement dans le même répertoire où se trouvent les fichiers .java qu'il veut retraiter, comme le montre aussi son scénario d'usage
- Chertsey2011 veut uniquement le nom du répertoire courant à l'exclusion d'autres chose pour "réparer" son projet Java dans un répertoire en insérant cette information dans une directive
Par rapport à sa spécification, j'ai seulement pris la liberté d'insérer, en plus de la ligne souhaitée, un saut de ligne, qui est un style habituel en Java pour séparer visuellement cette première ligne d'autres directives d'import qui peuvent suivre ou des déclarations de classes.
Selon ma compréhension, c'est un quick-and-dirty hack pour résoudre un problème ponctuel de "réparation" de code que veut Chertsey2011 sur un répertoire donné, et pas un nécessairement un script pour de multiples usages à venir, ou devant avoir un niveau de contrôle et de sécurisation passant des certifications aéronautiques pour piloter un Airbus ;-)