1
bash腳本中的if
語句是否可以根據通配符確認其當前文件夾?確認bash腳本位於帶有通配符的正確文件夾中?
我想提出一個腳本來快速地將處於維護模式Drupal站點,詢問您是否要保留.htaccess文件,保持站點文件夾和.htaccess文件(如果需要),更新模塊,然後數據庫使網站退出維護模式。我已經完成了上述工作,但爲了便於使用,我希望爲所有站點文件夾提供一個主腳本,並將其存儲在中央位置。
這裏是我的腳本,它可以作爲設計:
#/bin/bash
CWD=$(pwd)
cd $CWD
echo $CWD
if [ $CWD = "/var/www/vhosts/specific.site.folder" ]; then
echo "Updating drupal core files"
read -r -p "do you need to keep the .htaccess file? [y/N]" response
if [ $response = y ]
then
/usr/local/bin/drush vset maintenance_mode 1
mv ./.htaccess ../.htaccess
mv ./sites ../sites
rm -rf *
cp -R /sources/drupal/* ./
mv ../sites ./sites
mv ../.htaccess ./.htaccess
chown -R httpd:httpd *
/usr/local/bin/drush up && /usr/local/bin/drush updb
/usr/local/bin/drush vset maintenance_mode 0
elif [ $response = n ]
then
/usr/local/bin/drush vset maintenance_mode 1
mv ./sites ../sites
rm -rf *
cp -R /sources/drupal/* ./
mv ../sites ./sites
chown -R httpd:httpd *
/usr/local/bin/drush up && /usr/local/bin/drush updb
/usr/local/bin/drush vset maintenance_mode 0
else
echo "Response must be either y or n"
fi
else
echo "not in a web directory, exiting"
fi
我想是相同的腳本,但類似:
if [ $CWD = "/var/www/vhosts/*" ]; then
這沒有奏效。我希望這樣工作,以便相同的腳本可以運行任何站點,但保持其他目錄安全,包括站點文件夾本身的子目錄。
如果有更好的方法來做我在那裏的任何事情,請給他們建議。
這個打算運行的服務器是基於centos 6的,但它可能需要在基於debian的機器上使用,如果有什麼需要改變的話,請讓我知道。
謝謝:) 完美。 –