你們好,我是良許。程序員
咱們在平時工做的時候,爲了測試產品的一些功能,咱們會寫一系列的腳本,而且把它們放在同一個目錄下。在作測試的時候,咱們一般會依次執行這些腳本,而後記錄測試結果。面試
這樣作的弊端是顯而易見的,那就是效率過低。若是腳本數很少,你的「時間管理」能力又很強的話,那麼問題不大。但若是腳本數不少,那麼你極可能就有一拳打爆屏幕的衝動(別問我怎麼知道,要不是個人同事拼死拉着,個人屏幕極可能已經爆了好幾塊了)。正則表達式
本文就給你們介紹三種一次性執行目錄下全部腳本的方法。架構
首先推薦一個很實用,但你們不是很熟悉的命令:run-parts
。它的基本用法以下:學習
$ run-parts option <directory-path>
可是,並非目錄下全部的腳本都會被執行,仍是會有一些命名要求的。腳本的名字知足如下條件纔會被執行:大/小寫、數字、下劃線(_)、短槓線(-)。測試
爲了能選出知足條件的腳本,咱們一般須要加上 --regex
選項。假如咱們的目錄下有這些腳本:網站
因爲腳本通常是以 .sh
結尾,因此若是你的命名都符合規則的話,想要執行全部腳本的話,能夠這樣操做:spa
$ run-parts --regex 'sh$' .
執行結果:3d
若是你只想要執行以 s
開頭,sh
結尾的腳本,能夠結合以下正則表達式:code
$ run-parts --regex '^s.*sh$' .
執行結果:
固然了,你能夠根據本身的腳本狀況,寫出對應的正則表達式。
爲了防止誤操做,在腳本真正執行以前,能夠先看下將被執行的腳本會有哪些。咱們能夠加上 --list
選項:
$ run-parts --list --regex '^s.*sh$' .
執行結果:
如結果所示,加上 --list
選項後,它只會列出將要執行的腳本,便於你的核對,並不會真正去執行這些腳本。
可是,run-parts
這個命令仍是比較小衆,估計不少人並不知道這個命令,更不用說知道怎麼去使用了。另外一個執行目錄下全部腳本的方法是使用 find
命令,這個你們會更熟悉一些。
具體來說,咱們可使用 find
命令來找到目標目錄下全部的腳本,而後再使用 -exec
選項去執行找到的腳本。
$ find ~/scripts -maxdepth 1 -type f -executable -name 's*' -exec {} \; STAY HOME STAY SAFE
上面的命令是指定了只在 scripts/
目錄這個層級下找腳本,可是,你還能夠去掉這個限制,就能夠搜索當前目錄及其子目錄下全部的腳本了:
$ find -maxdepth 1 -type f -executable -name '*.sh' -exec {} \;
若是你 Shell 的水平不錯的話,那麼 for
循環也是一個不錯的選擇。好比你想執行目錄下全部以 s
開頭的腳本,能夠這樣寫:
$ for f in ~/scripts/s* ; do [ -x "$f" ] && [ ! -d "$f" ] && "$f" ; done STAY HOME STAY SAFE
若是你想執行目錄下全部的腳本,能夠作一個小小的改動:
$ for f in ~/scripts/*.sh ; do [ -x "$f" ] && [ ! -d "$f" ] && "$f" ; done 公衆號:良許Linux hello world! STAY HOME STAY SAFE
最後,最近不少小夥伴找我要Linux學習路線圖,因而我根據本身的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。不管你是面試仍是自我提高,相信都會對你有幫助!目錄以下:
免費送給你們,只求你們金指給我點個贊!
連接:https://pan.baidu.com/s/1_6un...
提取碼:9pbc
也但願有小夥伴能加入我,把這份電子書作得更完美!
推薦閱讀: