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
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
premier):
dos2unix /path/to/your/script
Lectures complémentaires: