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...
[Resolu] Problème De Rm Et De Variables Dans Un Bash
Débuté par axolotus, jui 24 2011 22:42
2 réponses à ce sujet
#1
Posté 24 juillet 2011 - 22:42
#2
Posté 25 juillet 2011 - 18:27
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.
axolotus, 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...
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)
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
Posté 25 juillet 2011 - 22:25
father_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.
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
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)














