您好,登錄后才能下訂單哦!
通過shell腳本怎么循環進入目錄執行命令?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
相對應的目錄結構如下;
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腳本怎么循環進入目錄執行命令的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。