下面舉個例子
比如在你的電腦中有兩個目錄,乙個是aa,乙個是bb在這兩個目錄中有5個相同的檔案,但其中乙個目錄中的乙個或多個檔案剛剛修改過,現在我忘記剛才改的是那幾個檔案 了,那麼我靠梢員冉弦幌掄飭礁瞿柯嫉奈募就知道?程式如下:
for file in a1 a2 a3 a4 a5
do diff aa/$file bb/$file
done
下面再舉乙個不帶名字列表的例子
for file
do echo $file
done
檔案內容儲存在a.sh中 並可執行
我們在執行這個shell程式時命令列如下:
a.sh a1 a2 a3 a4 a5
執行結果如下:
a1 a2
a3 a4
a5 大家從這個例子中可以看到命令列的引數被逐一讀入一次
三.迴圈控制語句
break 命令不執行當前迴圈體內break下面的語句從當前迴圈退出.
continue 命令是程式在本循體內忽略下面的語句,從迴圈頭開始執行.
一,命令組合:圓括號和花括號
shell中有兩種方法將命令組合在一起:圓括號和花括號.圓括號使shell建立乙個子shell 來讀取並執行括起來的名命令.左括號和右括號不論出現在命令列中的什麼位置,shell都會認為它們具有特殊的組合意義的.只有用雙引號將它們括起來引用,才表示圓括號或花括號的原義.例如:
echo a(b)
將出現語法上的錯誤,要想輸出a(b)字串 只能括起來
echo "a(b)"
或echo a"("b")"
這樣才能被shell正確解釋. 利用組合命令有什麼作用呢?
一,用圓括號組合命令
圓括號的組合命令可以建立子程序執行組合程式,建立子程序的功能是很有用的,因為子shell在組合命令中的種種操作都不會影響到當前shell的各變數的值.
例如:
子程序在執行組合命令時改變了工作目錄,並在新的工作目錄下執行一系例命令,執行完後它可以不必返回原工作目錄,因為子程序工作目錄的改變不會影響到當前工作目錄. 建立子程序後將當前的環境也同樣傳給子shell,當前shell中用export輸出到環境中的各變數在子shell中同樣有效.
花括號也可以將命令組合在一起.左 右花括號只有作為一條命令的第乙個字出現時, shell才它們含有特殊含義. 與圓括號不同的是花括號並不建立子shell,只是由當前的shell來讀取並執行括起來的 命令.有時使用者希望使用一組命令的順序輸出作為另一組命令的輸入,此時用花括號是很方便的. 不論是用圓括號不是花括號,退出狀態都是等於最後一條括起來的命令的退出狀態
Shell 指令碼學習小結 1
shell 介紹 shell 就是乙個unix命令列直譯器,當使用者輸入命令並按回車鍵時,shell會解釋命令並執行相應操作。這種方式稱為互動式。shell也可以當做高階程式語言來使用,這時,不需要在shell提示符後一次輸入乙個命令,而是將多個命令存入乙個檔案中,然後讓shell一次性執行檔案中的...
shell指令碼符號小結
大多數的shell指令碼都是以 bin sh開頭的,是對該shell指令碼的宣告,說明這個shell指令碼的型別及執行路徑。1.在shell指令碼中表示的注釋,但是 卻不是。2.表示的當前賬戶的home目錄。3.表示連續命令,我們在c語言程式設計時就經常用到。4.單引號表示單一字元。5.雙引號表示單...
shell學習小結
小結 本章我麼介紹了如何使用ls 與stat 露出檔案與檔案 meta資料,還有如何使用 touch 設定未見時間戳 touch 可顯示有關日期時間相關的資訊以及在許多現行系統上的範圍限制.說明了如何以shell 的程序id 變數 搭配mktemp 工具並手動取出隨機資料流樣本 建立位移的臨時性檔名...