Problème dans un script bash
Résolu/Fermé
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
-
24 juil. 2011 à 20:43
gm - 26 juil. 2011 à 08:15
gm - 26 juil. 2011 à 08:15
A voir également:
- Problème dans un script bash
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Bingo bash free - Télécharger - Divers Jeux
- Script cmd - Guide
9 réponses
Franzux
Messages postés
8907
Date d'inscription
mercredi 5 décembre 2007
Statut
Contributeur
Dernière intervention
27 octobre 2015
1 145
Modifié par Franzux le 24/07/2011 à 23:10
Modifié par Franzux le 24/07/2011 à 23:10
Vire les quotes :
Intel Q6600 Debian Lenny//Gentoo
Sous Linux, 99% des bugs se situent entre le clavier et la chaise de bureau...
franz@maerix:~/test$ mkdir test1 franz@maerix:~/test$ cd test1/ franz@maerix:~/test/test1$ touch {1,2,3,4} franz@maerix:~/test/test1$ cd .. franz@maerix:~/test$ variable=/home/franz/test/test1/ franz@maerix:~/test$ echo $variable /home/franz/test/test1/ franz@maerix:~/test$ ls test1/ 1 2 3 4 franz@maerix:~/test$ rm -r -f $locale* franz@maerix:~/test$ ls test1/ franz@maerix:~/test$
Intel Q6600 Debian Lenny//Gentoo
Sous Linux, 99% des bugs se situent entre le clavier et la chaise de bureau...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
24 juil. 2011 à 23:14
24 juil. 2011 à 23:14
Salut,
Bizarre ;-\
Rajoute ce qui est en gras dans ton script et exécutes-le, puis affiches-nous le résultat :
Bizarre ;-\
Rajoute ce qui est en gras dans ton script et exécutes-le, puis affiches-nous le résultat :
#!/bin/sh set -xv #Declaration des variables KWARTZ_LOCALE=/mnt/essai/ rm -rvf "$KWARTZ_LOCALE"*
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
24 juil. 2011 à 23:26
24 juil. 2011 à 23:26
sans les quotes ça donne rien n'ont plus.
j'ai modifié le script comme tu me l'a suggéré voici la reponse :
/mnt # : invalid optionurgekwartz.sh: line 2: set: -
/mnt # set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
-sh: set:: command not found
et merci pour votre aide
j'ai modifié le script comme tu me l'a suggéré voici la reponse :
/mnt # : invalid optionurgekwartz.sh: line 2: set: -
/mnt # set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
-sh: set:: command not found
et merci pour votre aide
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
24 juil. 2011 à 23:29
24 juil. 2011 à 23:29
Quel système ?
Quelle distrib ?
Que donne la commande :
Quelle distrib ?
Que donne la commande :
ls -l /bin/sh
Franzux
Messages postés
8907
Date d'inscription
mercredi 5 décembre 2007
Statut
Contributeur
Dernière intervention
27 octobre 2015
1 145
24 juil. 2011 à 23:53
24 juil. 2011 à 23:53
C'est étrange que cela fonctionne chez moi...
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
24 juil. 2011 à 23:57
24 juil. 2011 à 23:57
Voila ce que donne ls -l /bin/sh
-rwxr-xr-x 1 admin administ 648420 May 19 23:03 /bin/sh*
Je suis sur un nas qnap et visiblement c'est un linux maison
J'ai exécuté le script sur une suse et oh miracle il fonctionne.
Cela doit donc venir du qnap ...
-rwxr-xr-x 1 admin administ 648420 May 19 23:03 /bin/sh*
Je suis sur un nas qnap et visiblement c'est un linux maison
J'ai exécuté le script sur une suse et oh miracle il fonctionne.
Cela doit donc venir du qnap ...
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
25 juil. 2011 à 09:24
25 juil. 2011 à 09:24
Effectivement cela semble venir du shell sh ;-(
Essaie voir cette commande et affiches-nous le résultat si elle marche :
Essaie voir cette commande et affiches-nous le résultat si elle marche :
shopt -p
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
25 juil. 2011 à 11:30
25 juil. 2011 à 11:30
shopt -u cdable_vars
shopt -u cdspell
shopt -u checkhash
shopt -u checkwinsize
shopt -s cmdhist
shopt -u dotglob
shopt -u execfail
shopt -s expand_aliases
shopt -u extdebug
shopt -u extglob
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -u histappend
shopt -u histreedit
shopt -u histverify
shopt -s hostcomplete
shopt -u huponexit
shopt -s interactive_comments
shopt -u lithist
shopt -s login_shell
shopt -u mailwarn
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nocasematch
shopt -u nullglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
shopt -u shift_verbose
shopt -s sourcepath
shopt -u xpg_echo
shopt -u cdspell
shopt -u checkhash
shopt -u checkwinsize
shopt -s cmdhist
shopt -u dotglob
shopt -u execfail
shopt -s expand_aliases
shopt -u extdebug
shopt -u extglob
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -u histappend
shopt -u histreedit
shopt -u histverify
shopt -s hostcomplete
shopt -u huponexit
shopt -s interactive_comments
shopt -u lithist
shopt -s login_shell
shopt -u mailwarn
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nocasematch
shopt -u nullglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
shopt -u shift_verbose
shopt -s sourcepath
shopt -u xpg_echo
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
25 juil. 2011 à 11:43
25 juil. 2011 à 11:43
shopt -u extglob
;-((
Forcément l'expansion des noms de fichiers est désactivé ;-(
Mais ce n'est pas sûr que ce soit la cause.
A tout hasard, rajoute cette ligne en début de script :
;-((
Forcément l'expansion des noms de fichiers est désactivé ;-(
Mais ce n'est pas sûr que ce soit la cause.
A tout hasard, rajoute cette ligne en début de script :
shopt -s extglob
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
25 juil. 2011 à 11:40
25 juil. 2011 à 11:40
Excuse moi j'ai lancé le sujet par erreur. Je t'ai mis le résultat du shopt -u
et merci pour ton aide
et merci pour ton aide
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
25 juil. 2011 à 13:30
25 juil. 2011 à 13:30
avec shopt -s extglob
ça marche pas non plus :(
d'autre part en appliquant le debugger :
sh -x /share/scripts/purgekwartz.sh
j'ai ce retour :
KWARTZ_LOCALE=$'/mnt/essai/\r'
' rm -rf '/mnt/essai/
est-ce normal ce \r à la fin de KWARTZ_LOCALE ?????
ça marche pas non plus :(
d'autre part en appliquant le debugger :
sh -x /share/scripts/purgekwartz.sh
j'ai ce retour :
KWARTZ_LOCALE=$'/mnt/essai/\r'
' rm -rf '/mnt/essai/
est-ce normal ce \r à la fin de KWARTZ_LOCALE ?????
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
25 juil. 2011 à 14:03
25 juil. 2011 à 14:03
est-ce normal ce \r à la fin de KWARTZ_LOCALE ?????
Euh... non ;-\
Tu peux afficher la sortie de :
Et si l'option "-A" de cat n'est pas reconnue, essaye avec :
Euh... non ;-\
Tu peux afficher la sortie de :
cat -A /share/scripts/purgekwartz.sh
Et si l'option "-A" de cat n'est pas reconnue, essaye avec :
sed -n l /share/scripts/purgekwartz.sh
Ca donne l'impression d'avoir écrit le script sous Windows puis poussé ça en brut de fonderie sur ta machine...
Essaie d'utiliser des guillemets :
Essaie d'utiliser des guillemets :
KWARTZ_LOCALE="/mnt/essai/"
axolotus
Messages postés
7
Date d'inscription
dimanche 24 juillet 2011
Statut
Membre
Dernière intervention
25 juillet 2011
25 juil. 2011 à 23:11
25 juil. 2011 à 23:11
Ta remarque gm m'a mis la puce à l'oreille. Bien que j'utilise uniquement vi le script de base était un .cmd d'un collègue que j'avais récupéré. Il ne fonctionnaient pas. J'ai donc converti le fichier en .sh sans plus de résultats et pour cause le fichier avait vraisemblablement rédiger sur un windows...
J'ai fait une recherche sur les format des fichiers depuis vi et je suis tombé sur ce site en anglais mais très intéréssant : https://vim.fandom.com/wiki/File_format
dans vi en tapant :set ff? (ff = file format) le réponse était fileformat=dos
J'ai donc tapé :
:update Save any changes.
:e ++ff=dos Edit file again, using dos file format ('fileformats' is ignored).[A 1]
:w Write buffer using dos (CRLF) line endings.
et j'ai a nouveau véfifier le format
set ff?
fileformat=unix
et je l'ai exécuté et la miracle ça fonctionne :)
Je vous remercie tous de m'avoir apporté vos idées sans vous je n'aurai jamais trouvé ce coup tordu. C'est toujours la galère de reprendre le travail d'un autre...
MERCI A TOUS
au fait quelqu'un connait la différence entre .cmd et .sh?
J'ai fait une recherche sur les format des fichiers depuis vi et je suis tombé sur ce site en anglais mais très intéréssant : https://vim.fandom.com/wiki/File_format
dans vi en tapant :set ff? (ff = file format) le réponse était fileformat=dos
J'ai donc tapé :
:update Save any changes.
:e ++ff=dos Edit file again, using dos file format ('fileformats' is ignored).[A 1]
:w Write buffer using dos (CRLF) line endings.
et j'ai a nouveau véfifier le format
set ff?
fileformat=unix
et je l'ai exécuté et la miracle ça fonctionne :)
Je vous remercie tous de m'avoir apporté vos idées sans vous je n'aurai jamais trouvé ce coup tordu. C'est toujours la galère de reprendre le travail d'un autre...
MERCI A TOUS
au fait quelqu'un connait la différence entre .cmd et .sh?