對於學習Linux的同窗來講,最難過的就是linux的命令吧,不只多的數不清楚還有些記得特別混亂,下面小猿圈Linux講師總結了經過shell腳本循環進入目錄執行命令的方法,但願對你的學習有必定的幫助。php
部署一套新的環境新環境裏面好多項目,總體目錄結構如爲:/webserver/*linux
全部的項目都在webserver目錄下,其中有laravel和thinkphp項目的代碼。laravel
laravel框架中, 根目錄下storage vendor bootstrap 目錄須要設置777權限。web
thinkphp框架,根目錄App下Runtime目錄須要設置777權限。thinkphp
所以相對應的目錄結構以下:shell
laravel框架的目錄結構爲:/webserver/aaa/www/storage,vendor,bootstrapbootstrap
thinkphp框架目錄結構爲:/webserver/bbb/www/App/Runtimephp框架
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
以上就是小猿圈Linux講師對於經過shell腳本循環進入目錄執行命令的方法的介紹了,相信你有了必定的瞭解,那麼趕快去作吧,記住學習是一門須要堅持的linux自學交流1羣:819805410,若是遇到問題能夠到小猿圈找答案的,裏面有最新最全面的課程。