【发布时间】:2014-04-01 13:26:06
【问题描述】:
bash 脚本中的if 语句能否根据通配符确认其当前文件夹?
我正在制作一个脚本来快速将一个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 的机器上使用,如果有任何需要更改,请告诉我。
【问题讨论】:
标签: bash .htaccess if-statement centos6 drush