Prb Script Shell avec boucle WHILE

Résolu/Fermé
Batou - 7 août 2010 à 18:53
 Batou - 7 août 2010 à 19:23
Bonjour,

Je me suis mis en tête de faire un script d'installation semi-automatisé de server LAMP sous Debian mais je cale sur une erreur syntax que me renvoi le terminal

Je cite :

./script_debian.sh: line 189: syntax error near unexpected token 'done'
./script_debian.sh: line 189: ' done'

J'ai beau eu isolé le code dans la mesure du possible et regarder à nouveau la syntax de la boucle While mais je bug toujours.

Si je place en commentaire WHILE Condition DO DONE le script fonctionne correctement.

Voici la portion de code en question :

VAR_CHECK=""
while [ "$VAR_CHECK" != "n" ]
do
echo "Création d'hôte virtuel sur le nom de domaine ..."
echo "Saisir nom de domaine ? (exemple : debian.org) :"
read VAR_VIRTUAL

echo ""
echo "Les alias suivant seront ajoutés : www.$VAR_VIRTUAL *.$VAR_VIRTUAL"

echo "Création répertoire racine /var/www/$VAR_VIRTUAL"
# mkdir /var/www/$VAR_VIRTUAL

# echo "Création fichier de contrôle"
# echo"
# <?php
# $VAR_VIRTUAL FONCTIONNE !!!
# ;?>
# " >> /var/www/$VAR_VIRTUAL/index.php

# chown -R www-data /var/www/$VAR_VIRTUAL
# chmod -R 755 /var/www/$VAR_VIRTUAL

echo "Ajout au fichier HOSTS de $VAR_VIRTUAL"
# echo "127.0.0.1 $VAR_VIRTUAL" >> /etc/hosts
sleep 2

echo "Création du fichier configuration $VAR_VIRTUAL"
# echo"
# <VirtualHost *:80>
# ServerAdmin postmaster@$VAR_VIRTUAL
# ServerName $VAR_VIRTUAL
# ServerAlias www.$VAR_VIRTUAL *.$VAR_VIRTUAL
#
# DocumentRoot /var/www/$VAR_VIRTUAL
# <Directory />
# Options FollowSymLinks
# AllowOverride None
# </Directory>
# <Directory /var/www/$VAR_VIRTUAL>
# Options Indexes FollowSymLinks MultiViews
# AllowOverride None
# Order allow,deny
# allow from all
# </Directory>
#
# ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
# <Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
# </Directory>
#
# ErrorLog /var/log/apache2/error.log
#
# # Possible values include: debug, info, notice, warn, error, crit,
# # alert, emerg.
# LogLevel warn
#
# CustomLog /var/log/apache2/access.log combined
#
# Alias /doc/ "/usr/share/doc/"
# <Directory "/usr/share/doc/">
# Options Indexes MultiViews FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
# Allow from 127.0.0.0/255.0.0.0 ::1/128
# </Directory>
#
# </VirtualHost>
#
# " >> /etc/apache2/sites-available/$VAR_VIRTUAL

echo "Activation de l'hôte virtuel $VAR_VIRTUAL"
# a2ensite $VAR_VIRTUAL
sleep 2

echo "Re-initialisation d'Apache ..."
# /etc/init.d/apache2 reload
read VAR_CHECK
done

Cordialement

Batou

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
7 août 2010 à 19:10
Salut,

J'ai testé ta boucle et je n'ai pas eu de problème ;-\

T'es sur que ton souci n'est pas ailleurs ??? (avec une autre boucle "do ... done" par exemple)

Rajoute un "set -xv" pour débuguer ton script...

Voilà avec quoi j'ai testé :

#! /bin/bash

#set -xv

VAR_CHECK=""
while [ "$VAR_CHECK" != "n" ]
do
echo "Création d'hôte virtuel sur le nom de domaine ..."
echo "Saisir nom de domaine ? (exemple : debian.org) :"
read VAR_VIRTUAL

echo ""
echo "Les alias suivant seront ajoutés : www.$VAR_VIRTUAL *.$VAR_VIRTUAL"

echo "Création répertoire racine /var/www/$VAR_VIRTUAL"

echo "Ajout au fichier HOSTS de $VAR_VIRTUAL"
echo "127.0.0.1 $VAR_VIRTUAL"
sleep 2

echo "Création du fichier configuration $VAR_VIRTUAL"


echo "Activation de l'hôte virtuel $VAR_VIRTUAL"
echo "a2ensite $VAR_VIRTUAL"
sleep 2

echo "Re-initialisation d'Apache ..."
echo "/etc/init.d/apache2 reload"
read VAR_CHECK
done
0
Non toujours en rade.
Je test sur mon Mac dois je voir un réticence de mon Mac au boucle While je doute :)

ma boucle WHILE et implémenté dans une IF je regarde si je n'ai pas de caractère fantôme.
0