shell指令碼學習小結

2021-05-06 22:32:55 字數 1331 閱讀 4833

下面舉個例子

比如在你的電腦中有兩個目錄,乙個是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 工具並手動取出隨機資料流樣本 建立位移的臨時性檔名...