公司需要部署一套新的環境,新環境里面好多項目,整體目錄結構如為:/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權限
#/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腳本循環進入目錄執行命令的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- shell在指定目錄下批量執行sql腳本的實例
- 使用Python生成Shell命令,批量執行程序代碼解析
- Shell腳本實現批量添加用戶
- hive-shell批量命令執行腳本的實現方法