web-dev-qa-db-fra.com

": nom de variable incorrect lu: site Web"

J'essaie donc de créer un script .sh pour mon serveur Ubuntu LAMP qui facilite l'ajout d'un nouveau site Web à Apache2, mais lorsque j'essaie de l'exécuter, l'erreur se produit.

: bad variable name read: website

J'ai fait quelques recherches et je ne trouve pas les réponses dont j'ai besoin. Le script contient plusieurs zones dans lesquelles les lignes correspondant à la même configuration que la ligne à l'origine de l'erreur sont créées. Voici la configuration sur la ligne qui, je pense, est à l'origine de l'erreur

read -p 'What is the website title (no spaces): ' website

Voici le script entier:

echo Starting website builder
read -p 'What is the website title (no spaces): ' website
echo Website title saved as $website
echo creating storage folder
mkdir -p /var/www/$website
echo changing file permissions
chown -R $name:$name /var/www/$website
chmod -R 755 /var/www/$website
echo creating test file
echo <html> >> /var/www/$website/index.html
echo <head> >> /var/www/$website/index.html
echo    <title>Success</title> >> /var/www/$website/index.html
echo </head> >> /var/www/$website/index.html
echo <body> >> /var/www/$website/index.html
echo    <h1>$website is operational</h1> >> var/www/$website/index.html
echo </body> >> /var/www/$website/index.html
echo </html> >> /var/www/$website/index.html
clear
cat /var/www/$website/index.html
echo
read -p "press [Enter] to continue"
clear
echo creating $website.conf file
echo <VirtualHost *:80> >> /etc/Apache2/sites-available/$website.conf
read -p 'Enter ServerName: ' ServerName
echo        ServerName $ServerName >> /etc/Apache2/sites-available/$website.conf
read -p 'Enter ServerAlias (domain name): ' ServerAlias
echo        ServerAlias $ServerAlias >> /etc/Apache2/sites-available/$website.conf
read -p 'Enter ServerAdmin: ' ServerAdmin
echo        ServerAdmin $ServerAdmin >> /etc/Apache2/sites-available/$website.conf
echo        DocumentRoot var/www/$website >> /etc/Apache2/sites-available/$website.conf
echo        ErrorLog ${Apache_LOG_DIR}/error.log >> /etc/Apache2/sites-available/$website.conf
echo        CustomLog ${Apache_LOG_DIR}/access.log combined >> /etc/Apache2/sites-available/$website.conf
echo </VirtualHost>
clear
cat /etc/Apache2/sites-available/$website.conf
echo 
read -p "press [Enter] to continue"
clear
echo activating website
a2ensite $website
service Apache2 restart
echo Open a web browser on any pc and visit $ServerAlias. If you have errors make sure the alias and external ip was properly set up on the domainservice you signed up with.
read -p 'Process completed. Press [Enter] to end.'
clear
1
Ian Oberdorf

Le message d'erreur brouillé indique un problème avec les fins de ligne Windows. Vous pouvez convertir les fins de ligne du fichier en sauts de ligne (format Unix) avec:

sed -i 's/\r$//' /path/to/your/script

ou (vous devrez peut-être installer dos2unix Install dos2unix premier):

dos2unix /path/to/your/script

Lectures complémentaires:

1
dessert