Je cherche à écrire un shell qui vérifie l'existence d'un ou plusieurs fichiers (par ex "t*.txt"), et qui , si le ou les fichiers existent les déplace dans un répertoire old; s'ils n'existent pas, le programme sort avec un code de retour 1.
C'est dans le concept même que quelque chose cloche, et c'est pourquoi tu n'arriveras jamais à pondre ton algo.
" * " peut être substitué par un nombre indéfini de caractères, donc il est évident que le shell va développer cela en une liste des fichiers existants qui dont le nom valide le motif. S'il s'agissait de développer en toutes les combinaisons possibles, tu en obtiendrais une infinité !
Par contre, tu peux les développer dans un répertoire donné et vérifier s'ils existent tous dans un autre. Dans ce cas, le développement de toto="t*.txt*", effectué à la bonne place, fonctionnera. Mais pour le reste, tu n'as pas besoin d'une boucle : " mv " peut naturellement recevoir plus de deux arguments, auquel cas le dernier doit être un répertoire :
mv fichier1 fichier2 fichier3 monrepertoire/
Et si un des fichiers est inexistant, c'est la commande mv elle-même qui échouera et renverra ton code 1.
# Revoir problématique
Posté par Obsidian . En réponse au message mv conditionnel. Évalué à 4.
C'est dans le concept même que quelque chose cloche, et c'est pourquoi tu n'arriveras jamais à pondre ton algo.
" * " peut être substitué par un nombre indéfini de caractères, donc il est évident que le shell va développer cela en une liste des fichiers existants qui dont le nom valide le motif. S'il s'agissait de développer en toutes les combinaisons possibles, tu en obtiendrais une infinité !
Par contre, tu peux les développer dans un répertoire donné et vérifier s'ils existent tous dans un autre. Dans ce cas, le développement de toto="t*.txt*", effectué à la bonne place, fonctionnera. Mais pour le reste, tu n'as pas besoin d'une boucle : " mv " peut naturellement recevoir plus de deux arguments, auquel cas le dernier doit être un répertoire :
mv fichier1 fichier2 fichier3 monrepertoire/
Et si un des fichiers est inexistant, c'est la commande mv elle-même qui échouera et renverra ton code 1.