通过shell脚本循环进⼊⽬录执⾏命令的⽅法
公司需要部署⼀套新的环境,新环境⾥⾯好多项⽬,整体⽬录结构如为:/webserver/*
所有的项⽬都在webserver⽬录下,其中有laravel和thinkphp项⽬的代码。
laravel框架中,根⽬录下storage vendor bootstrap ⽬录需要设置777权限。
thinkphp框架,根⽬录App下Runtime⽬录需要设置777权限。
因此相对应的⽬录结构如下;
laravel框架的⽬录结构为:/webserver/aaa/www/storage,vendor,bootstrap
thinkphp框架⽬录结构为:/webserver/bbb/www/App/Runtime
laravel和thinkphp项⽬都有好多,不可能每次⼀个个进⼊项⽬的⽬录设置权限,因此还是需要执⾏shell脚本进⾏操作。
第⼀次进⾏操作的时候,进⼊/webserver/,然后执⾏下⾯的代码,可以实现设置laravel和thinkphp项⽬相应的⽬录权限为777。
thinkphp框架Runtime⽬录批量设置777权限
for dir in `ls`; do #历遍ls命令显⽰⽬录
cd $dir; #进⼊某个⽬录
if [ -d "www/App" ];then
cd www/App; #进⼊App⽬录
chmod -R 777 Runtime; #设置权限
cd ../../../; #返回到webserver⽬录
else #表⽰如果不存在App⽬录,就直接返回webserver⽬录
cd ../; #直接返回webserver⽬录。
fi
done
#第三⾏注释:检测是否有App这个⽬录,如果存在,继续往下执⾏。-d参数为检测是否为⽬录。同理,-f参数检测是否为⽬录,!-d 参数检测⽬录如果不存在,则执⾏。⼀些注释同理
laravel框架 storage vendor bootstrap ⽬录批量设置777权限
for dir in `ls`; do
cd $dir;
if [ -d "www/bootstrap" ];then
cd www;
chmod -R 777 storage vendor bootstrap;
cd ../../;
else
cd ../;
fi
done
这样操作后,还是有⼀定的不⾜,因为每次都必须要进⼊/webserver⽬录执⾏,还有改进的地⽅,可以在任何地⽅执⾏,把上⾯代码保存为shell脚本执⾏即可。
因此改进代码如下:
thinkphp框架Runtime⽬录批量设置777权限
#/bin/sh
pwd="/webserver" #初始化⽬录
for dir in $(ls $pwd); do #循环⽬录
cd $dir;
if [ -d "www/App" ];then
cd www/App;
chmod -R 777 Runtime;
cd ../../../;
else
cd ../;
fi
done
laravel框架 storage vendor bootstrap ⽬录批量设置777权限
bootstrap项目#/bin/sh
pwd="/webserver" #初始化⽬录
for dir in $(ls $pwd); do #循环⽬录
cd $dir;
if [ -d "www/bootstrap" ];then
cd www;
chmod -R 777 storage vendor bootstrap;
cd ../../;
else
cd ../;
fi
done
以上这篇通过shell脚本循环进⼊⽬录执⾏命令的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论