Aller au contenu


- - - - -

[Resolu] Problème De Rm Et De Variables Dans Un Bash


  • Vous ne pouvez pas répondre à ce sujet
2 réponses à ce sujet

#1 axolotus

    Jeune Qnapeur

  • Membres
  • Pip
  • 8 messages
  • Matériel: TS-809U-RP

Posté 24 juillet 2011 - 22:42

Bonjour,

Je suis entrain de créer des script bash pour automatiser des sauvegardes et je rencontre un problème avec l'utilisation de variables dans un script bash
mon script est le suivant :
#!/bin/sh
#Declaration des variables
KWARTZ_LOCALE=/mnt/essai/
rm -rf "$KWARTZ_LOCALE"*


les fichiers contenus dans /mnt/essai ne sont pas effacer cependant si j'écris directement rm -fr /mnt/essai/* dans le script à la place de la variable. Le script fait sont job sans problème.
Plus étrange encore, quand j'exécute le script sur une suse il fait le job avec la variable!!!!
Pourquoi sur qnap il ne prend pas en compte ma variable.

Je ne comprends plus.

Si quelqu'un à une idée je suis preneur...

#2 father_mande

    Qnapeur officiel

  • Administrateurs
  • 3 242 messages
  • Matériel: TS-459 Pro, TS-219, TS-109 II

Posté 25 juillet 2011 - 18:27

Bonjour,

Voir le messageaxolotus, le 24 juillet 2011 - 22:42 , dit :

Bonjour,

Je suis entrain de créer des script bash pour automatiser des sauvegardes et je rencontre un problème avec l'utilisation de variables dans un script bash
mon script est le suivant :
#!/bin/sh
#Declaration des variables
KWARTZ_LOCALE=/mnt/essai/
rm -rf "$
KWARTZ_LOCALE"*

les fichiers contenus dans /mnt/essai ne sont pas effacer cependant si j'écris directement rm -fr /mnt/essai/* dans le script à la place de la variable. Le script fait sont job sans problème.
Plus étrange encore, quand j'exécute le script sur une suse il fait le job avec la variable!!!!
Pourquoi sur qnap il ne prend pas en compte ma variable.

Je ne comprends plus.

Si quelqu'un à une idée je suis preneur...


La permissivité des bash, dash, sh, ksh, csh, etc. est variable ... essayez, pour être conforme au norme :
KWARTZ_LOCALE=/mnt/essai
rm -rf ${KWARTZ_LOCALE}/*

Si il y a risque d'avoir un espace ou un caractère spécial, protégez l'ensemble
rm -rf "${KWARTZ_LOCALE}/*"

Philippe.
QNAP TS-459, 3.6.0, Virtualbox, OpenVPN
QNAP TS-109, Debian Squeeze
QNAP TS-219P II, 3.6.1
La théorie, c’est quand on sait tout et que rien ne fonctionne. La pratique, c’est quand tout fonctionne et que personne ne sait pourquoi.
Le Raid N'EST PAS un backup (proverbe Qnapien)

#3 axolotus

    Jeune Qnapeur

  • Membres
  • Pip
  • 8 messages
  • Matériel: TS-809U-RP

Posté 25 juillet 2011 - 22:25

Voir le messagefather_mande, le 25 juillet 2011 - 18:27 , dit :

Bonjour,


La permissivité des bash, dash, sh, ksh, csh, etc. est variable ... essayez, pour être conforme au norme :
KWARTZ_LOCALE=/mnt/essai
rm -rf ${KWARTZ_LOCALE}/*

Si il y a risque d'avoir un espace ou un caractère spécial, protégez l'ensemble
rm -rf "${KWARTZ_LOCALE}/*"

Philippe.


Merci Philippe pour votre réponse.
En fait j'ai résolu le problème. Le fichier que j'utilisais provenait d'un script d'un collègue. Bien que j'utilise uniquement vi, je pense qu'il a rédigé le script, allait savoir pourquoi :(, sur windows?????
la fin des lignes a été terminé par \r qui empêchait le bon déroulement du script sans toutefois provoquer de sortie d'erreur.
J'ai trouvé un site pas mal qui explique comment convertir le format de fichier sous vim format dos en unix : http://vim.wikia.com/wiki/File_format.

Quelle galère de reprendre le travail d'un autre...





1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)