小猿圈Linux之經過shell腳本循環進入目錄執行命令的方法

對於學習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,若是遇到問題能夠到小猿圈找答案的,裏面有最新最全面的課程。

相關文章
相關標籤/搜索