Problème bash

Bonjour,

j’utilisais un script sur une passerelle pour reconnecter le réseau en cas de coupure…

le voici :

[code]#!/bin/bash
ping -c2 google.fr
TEST=$?

if [ $TEST -ne 0 ]
then
echo “Ping ne repond pas !”
/etc/init.d/networking restart
echo "Networking RESTART !"
echo “date” >> /media/data/partage/reconnections.log
else
echo "Ping ok"
fi

echo “Fin du script”
[/code]

Ca fonctionnait parfaitement… jusqu’au formatage de la machine… j’ai remis ce script en place… et la surprise… il y a des erreurs, je comprends pas trop :blush:

Quelqu’un pourrai m’aider svp ??

Voici le message d’erreur :

passerelle:~# ./testwlan0.sh -bash: ./testwlan0.sh : /bin/bash^M : mauvais interpréteur: Aucun fichier ou dossier de ce type

quand j’enleve la première ligne, il me met ça :

./testwlan0.sh ping: unknown host www.google.fr ./testwlan0.sh: line 17: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « " » correspondant ./testwlan0.sh: line 18: Erreur de syntaxe : fin de fichier prématurée

Salut,

1 - Vérifier que le /bin/bash existe
2 - Ce script doit être exécutable
3 - Ce script ne peut-être lancé que par “root”

C’est normal les caractère “bizarre” dans tes citations ?
Si oui c’est étrange mais je dirais que certain caractère ne sont pas supporté. Genre les fin de lignes … :unamused:

Sinon pour ton script je te conseillerais de la bonne exécution de ton “resart” en comptant le nombre de tentative de reconnexion …

Mais bon il faudrait déjà qu’il fonctionne :stuck_out_tongue:

[quote=“Mimoza”]C’est normal les caractère “bizarre” dans tes citations ?
Si oui c’est étrange mais je dirais que certain caractère ne sont pas supporté. Genre les fin de lignes … :unamused: [/quote]
Exactement : debianaddict.org/article12.html (si tu utilises vim, tu peux aussi faire :set ff=unix).

Alors, je n’y comprends rien…
mais j’ai laché l’affaire quelques jours…
J’ai recopié tout le code dans un nouveau fichier… et ça refonctionne…
Je pense qu’il y avait des caractères “invisibles” qui empêchaient un fonctionnement normal…

Travaillant uniquement sous linux, je ne pense pas qu’il s’agissait des pb de saut de ligne windows/unix.

Et pourtant si. Tu as sauvegardé où le script ?

sur ma partition home

ext ou fat ?

Le “^M” est une représentation du caractère “retour chario” utilisé sous dos (et donc windows) pour délimiter les lignes (sous Unix et donc Linux c’est le caractère fin de ligne, sous MacOS c’est les deux).

Mon /home est en ext3 je savais pas qu’on pouvait le metre en fat :blush:

comment j’aurai pu convertir ce fichier en dos sans passer par windows ou un systeme de fichier fat ?

(à ma connaissance, à chaque fois que j’ai récupéré des fichiers linux sous windows, il conservait le retour chariot linux, même après enregistrement (notepad les affiche sous forme d’un rectangle vide)… sauf, pour les nouveaux retour chariot que j’aurai éventuellement ajouté…) mais ce n’est pas du tout le cas cette fois…

Comme demandé plus haut poar ggoodluck :
tu emploies bash ou dash :question:

Sous win, c’est les deux aussi : fr.wikipedia.org/wiki/CRLF

Quand tu récupères un fichier linux sous win, il t’affiche un rectangle en guise de \n, mais sans retour à la ligne.
Quand tu récupères un fichier win sous linux, il t’affiche un ^M en guise de \r, suivi du retour à la ligne (\n).
Dans les deux cas, si tu n’y touches pas, ça ne bouge pas…

[quote=“ricardo”]Comme demandé plus haut poar ggoodluck :
tu emploies bash ou dash :question:[/quote]

Te fatigues pas, nos questions n’ont aucun intérêt :030

Dans le ~/.bashrc (ou ~/.zshrc selon) ensuite :
[code]$ dos2unix fichier[/code]

Et on en parle plus. ^^

Dans le ~/.bashrc (ou ~/.zshrc selon) ensuite :

Et on en parle plus. ^^