天天看點

shell腳本學習筆記(符号)

shell腳本的學習:

        1.Shell的作用是解釋執行使用者的指令,使用者輸入一條指令,Shell就解釋執行一條,這種方式稱為互動式(Interactive),Shell還有

一種執行指令的方式稱為批處理(Batch),使用者事先寫一 個Shell腳本(Script),其中有很多條指令,讓Shell一次把這些指令執行完,而

不必一條一條地敲指令。

        2.shell變量包括環境變量和本地變量,環境變量可以從父程序傳給子程序,printenv可列印出來;本地變量隻存在于目前

Shell程序,用set指令可以顯示目前Shell程序中定義的所有變量(包括本地變量和環境變量)和函數。

       3.變量引用:在Shell中定義或指派一個變量:VARNAME=value;變量引用的形式為${}, 變量引用的語句大概如下:

shell腳本學習筆記(符号)

其中:env | grep xxx 可以檢視一個環境變量,export可以講一個變量導入為環境變量

            4.檔案名代換:

                      通配符 * : 比對0個或多個任意字元

                      ? : 比對一個任意字元

                      [若幹字元] : 比對方括号中任意一個字元的一次出現

shell腳本學習筆記(符号)

  5.指令替換

                ` 或 $():由反引号括起來的也是一條指令,Shell先執行該指令,然後将輸出結果立刻代換到目前指令行中;算術代換$(())

用于算術計算,$(())中的Shell變量取值将轉換成整數,$(())中隻能用+-*/和()運算符,并且隻能做整數運算

shell腳本學習筆記(符号)

          6.轉義字元 \

         主要建立了使用‘$’ 和‘ -’作為檔案名的時候很麻煩,但是我們可以通過如下:

shell腳本學習筆記(符号)

         7.‘’和 “”的差別

和C語⾔言不一樣,Shell腳本中的單引号和雙引号一樣都是字元串的界定符,而不是字元的界定符。單引号用于保持引号内所有

字元的字面值,即使引号内的\和回車也不例外, 但是字元串中不能出現單引号;雙引号⽤用于保持引号内所有字元的字⾯面值(回車

也不例外),但有些情況除外。可以參照下例:

shell腳本學習筆記(符号)

      最後我們談一談shell是怎麼執行的吧:

shell是通過fork/exec去執行的,每次執行一條指令的時候都是通過fork出一個子程序去執行的,而父程序等待子程序執行完才執行的。

是以我可以知道一個很有趣的現象,我們有如下腳本:

#!/bin/bash
  pwd
  cd ..
  pwd
           
shell腳本學習筆記(符号)

        這就說明shell會fork子程序去執行指令;不過我們也可以不讓shell産生子程序,這是我們可以這樣做:

shell腳本學習筆記(符号)

        因為 "."是内建指令,它會是shell不産生子程序而去執行,關于内建指令可自己去查找一下,挺多的。

        好了,shell腳本的基本符号我介紹完了,确實比較有限,關于其他内容我會在接下來的部落格在進行介紹,關于符号的相關知識大家可以

查閱一些資料或參考一些書籍在強化一下,我說的這些知識常見的一些而已。