BASH 執行目錄下面的所有指令碼

2021-04-27 16:41:16 字數 726 閱讀 8665

問題:

你期望執行一系列的指令碼,這些指令碼名字不斷變化,並且你總是不停的新增新的指令碼,但是你不希望總是更改主指令碼。

解決方案:

將所有要執行的指令碼放入同乙個目錄,讓

bash

去執行。

bash

去查詢目錄下的指令碼而不是維護乙個要執行的指令碼的列表。

for script in /path/to/scripts/dir/*

do

if [ -f $script -a -x $script ]

then

$script

fi

done

討論:for

迴圈和if

語句後面會詳細說,這裡只是乙個小甜頭而已。萬用字元

'*'匹配到的當前目錄下面的檔案(

dot檔案除外,比如

.vimrc),

如果是乙個檔案(

-f測試)並且是可執行的(

-x測試),那麼

shell

將會去執行他。

這個簡單的例子裡面,不能夠給指令碼指定引數。這個完成個人的小事情可以,但是魯棒性不好,有時候還被認為是完全危險的。不過這裡只不過是給出了乙個指令碼程式設計的風格而已。

linux C讀目錄下面 的 所有檔案名字

任務需求 讀取某個目錄下的所有檔案的名字,並且將讀取的名字,作為引數逐個傳入處理函式 需要考慮的是,不同的目錄下面,檔案的個數不是固定的 檔案名字的長度也不是韌體的 那麼 怎麼儲存這個讀取的結果,並且傳給其他函式使用呢。include include include include include ...

shell備份,重新命名,刪除目錄下面的檔案

因為經常會用到shell指令碼,所以經常會寫一些,但是我從來沒有系統的學習過shell指令碼,遇到問題,就去看手冊,或者google一下,到了一定的程度才發現自己的基礎真的好差。下面在系統學習shell時,順便寫了點有用的小指令碼。1,備份目錄下面檔案 bin bash e badargs 65 c...

Linux啟動和關閉時自動執行的所有指令碼檔案

linux 使用的是基於 執行級 run levels 概念的稱為 sysvinit 的專用啟動工具。它在不同的系統上可能是完全不一樣的,所以不能認為乙個指令碼在某個 linux 發行版上工作正常。sysvinit 從現在開始我們稱之為 init 以執行級的模式來工作,一般有 7 從 0 到 6 個...