通過(guò)shell腳本循環(huán)進(jìn)入目錄執(zhí)行命令的方法
公司需要部署一套新的環(huán)境,新環(huán)境里面好多項(xiàng)目,整體目錄結(jié)構(gòu)如為:/webserver/*
所有的項(xiàng)目都在webserver目錄下,其中有l(wèi)aravel和thinkphp項(xiàng)目的代碼。
laravel框架中, 根目錄下storage vendor bootstrap 目錄需要設(shè)置777權(quán)限。
thinkphp框架,根目錄App下Runtime目錄需要設(shè)置777權(quán)限。
因此相對(duì)應(yīng)的目錄結(jié)構(gòu)如下;
laravel框架的目錄結(jié)構(gòu)為:/webserver/aaa/www/storage,vendor,bootstrap
thinkphp框架目錄結(jié)構(gòu)為:/webserver/bbb/www/App/Runtime
laravel和thinkphp項(xiàng)目都有好多,不可能每次一個(gè)個(gè)進(jìn)入項(xiàng)目的目錄設(shè)置權(quán)限,因此還是需要執(zhí)行shell腳本進(jìn)行操作。
第一次進(jìn)行操作的時(shí)候,進(jìn)入/webserver/,然后執(zhí)行下面的代碼,可以實(shí)現(xiàn)設(shè)置laravel和thinkphp項(xiàng)目相應(yīng)的目錄權(quán)限為777。
thinkphp框架Runtime目錄批量設(shè)置777權(quán)限
for dir in `ls`; do #歷遍ls命令顯示目錄 cd $dir; #進(jìn)入某個(gè)目錄 if [ -d "www/App" ];then cd www/App; #進(jìn)入App目錄 chmod -R 777 Runtime; #設(shè)置權(quán)限 cd ../../../; #返回到webserver目錄 else #表示如果不存在App目錄,就直接返回webserver目錄 cd ../; #直接返回webserver目錄。 fi done #第三行注釋:檢測(cè)是否有App這個(gè)目錄,如果存在,繼續(xù)往下執(zhí)行。-d參數(shù)為檢測(cè)是否為目錄。同理,-f參數(shù)檢測(cè)是否為目錄, !-d 參數(shù)檢測(cè)目錄如果不存在,則執(zhí)行。 一些注釋同理
laravel框架 storage vendor bootstrap 目錄批量設(shè)置777權(quán)限
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
這樣操作后,還是有一定的不足,因?yàn)槊看味急仨氁M(jìn)入/webserver目錄執(zhí)行,還有改進(jìn)的地方,可以在任何地方執(zhí)行,把上面代碼保存為shell腳本執(zhí)行即可。
因此改進(jìn)代碼如下:
thinkphp框架Runtime目錄批量設(shè)置777權(quán)限
#/bin/sh pwd="/webserver" #初始化目錄 for dir in $(ls $pwd); do #循環(huán)目錄 cd $dir; if [ -d "www/App" ];then cd www/App; chmod -R 777 Runtime; cd ../../../; else cd ../; fi done
laravel框架 storage vendor bootstrap 目錄批量設(shè)置777權(quán)限
#/bin/sh pwd="/webserver" #初始化目錄 for dir in $(ls $pwd); do #循環(huán)目錄 cd $dir; if [ -d "www/bootstrap" ];then cd www; chmod -R 777 storage vendor bootstrap; cd ../../; else cd ../; fi done
以上這篇通過(guò)shell腳本循環(huán)進(jìn)入目錄執(zhí)行命令的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Linux磁盤操作之清空文件內(nèi)容的方法小結(jié)
在使用Linux操作系統(tǒng)的過(guò)程中,用戶經(jīng)常會(huì)遭遇到一個(gè)常見(jiàn)的問(wèn)題——no space left on device,即磁盤空間不足的警告,所以本文給大家介紹了Linux清空文件內(nèi)容的常見(jiàn)命令,需要的朋友可以參考下2024-03-03
linux下防火墻開(kāi)啟某個(gè)端口號(hào)及防火墻常用命令使用(詳解)
下面小編就為大家?guī)?lái)一篇linux下防火墻開(kāi)啟某個(gè)端口號(hào)及防火墻常用命令使用(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率
最近工作中遇到一個(gè)需求,需要找出占用高的進(jìn)程,所以下面這篇文章主要給大家介紹了關(guān)于如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率的相關(guān)資料,需要的朋友可以參考下2022-04-04
jenkins?pipeline中獲取shell命令的標(biāo)準(zhǔn)輸出或者狀態(tài)的方法小結(jié)
這篇文章主要介紹了jenkins?pipeline中獲取shell命令的標(biāo)準(zhǔn)輸出或者狀態(tài),工作中需要獲取shell?命令的執(zhí)行狀態(tài),返回0或者非0,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02
jenkins+shell自動(dòng)化部署的實(shí)現(xiàn)步驟
本文主要介紹了jenkins+shell自動(dòng)化部署的實(shí)現(xiàn)步驟,通過(guò)jenkins與shell腳本相結(jié)合,實(shí)現(xiàn)war包自動(dòng)部署到多臺(tái)服務(wù)器上,感興趣的可以了解一下2022-04-04
shell腳本實(shí)現(xiàn)本地文件與服務(wù)器文件同步
這篇文章主要介紹了本地文件與服務(wù)器文件同步shell腳本的方法,然后在文章給大家補(bǔ)充介紹了shell腳本備份本地服務(wù)器的文件到遠(yuǎn)程服務(wù)器的實(shí)例代碼,需要的朋友可以參考下2017-11-11

