問題:
你期望執行一系列的指令碼,這些指令碼名字不斷變化,並且你總是不停的新增新的指令碼,但是你不希望總是更改主指令碼。
解決方案:
將所有要執行的指令碼放入同乙個目錄,讓
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 個...