だから、Apache2に新しいWebサイトを簡単に追加できるUbuntu LAMPサーバーの.shスクリプトを作成しようとしていますが、実行しようとするとエラーが発生します
: bad variable name read: website
いくつかの検索を実行しましたが、必要な答えが見つかりません。エラーの原因となった行と同じ設定に一致する行がスクリプト内にいくつかあります。これがエラーの原因と思われる回線のセットアップです
read -p 'What is the website title (no spaces): ' website
スクリプト全体は次のとおりです。
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
スクランブルされたエラーメッセージは、Windowsの行末の問題を示しています。次の方法で、ファイルの行末を改行(Unix形式)に変換できます。
sed -i 's/\r$//' /path/to/your/script
または(インストールする必要があるかもしれません dos2unix
最初):
dos2unix /path/to/your/script
参考文献: