Shell指令碼編程01:基礎知識

來源:互聯網
上載者:User

  Shell指令碼與Windows/Dos下的批處理相似,就是將各類命令預先放入到一個檔案中,然後執行該檔案,便可以達到與批處理類似的功能,主要是方便管理員進行設定或者管理用的。

  換句話來說,shell指令碼是利用shell的功能所寫的一個程式,這個程式使用純文字檔案,將一些shell的文法與指令寫在裡面,然後用正規標記法,管線命令以及資料流重導向等功能,以達到我們所想要的處理目的。

  這裡有必要說一下shell和shell指令碼的區別。

  Shell就是一個命令列解譯器,它的作用就是遵循一定的文法將輸入的命令加以解釋並傳給系統。它為使用者提供了一個向Linux發送請求以便運行程式的介面系統級程式,使用者可以用Shell來啟動、掛起、停止甚至是編寫一些程式。Shell本身是一個用C語言編寫的程式,它是使用者使用Linux的橋樑。

  Shell既是一種命令語言,又是一種程式設計語言(shell指令碼)。作為命令語言,它互動式地解釋和執行使用者輸入的命令;作為程式設計語言,它定義了各種變數和參數,並提供了許多在高階語言中才具有的控制結構,包括迴圈和分支。它雖然不是 Linux系統核心的一部分,但它調用了系統核心的大部分功能來執行程式、建立文檔並以並行的方式協調各個程式的運行。

1.文法基礎

  1.1開頭

  Shell指令碼程式必須以如下的語句行開始(必須方在檔案的第一行):

  #!/bin/sh

  “#!/bin/sh"是對shell的聲明,說明你所用的是那種類型的shell及其路徑所在。如果沒有該語句聲明,則指令碼將在預設的shell中執行。

  1.2注釋

  在進行shell編程時,以#開頭的句子表示注釋,直到這一行的結束。

  備忘:“#!/bin/sh"不是注釋。

  1.3變數

  在shell編程中,所有的變數都由字串組成,並且不需要對變數進行聲明。對變數賦值,可以使用如下語句:

  var="hello world"

  備忘:“=”前後不能有空格,句尾不能有“;”。

2.常用指令

  echo "some text": 將文字內容列印在螢幕上

  ls: 檔案清單

  wc –l filename:計算檔案行數

  wc -w filename:計算檔案中的單詞數

  wc -c filename: 計算檔案中的字元數

  cp sourcefile destfile: 檔案拷貝

  mv oldname newname : 重新命名檔案或移動檔案

  rm filename: 刪除檔案

  grep 'string' filename: 在檔案內搜尋字串

  cat filename: 輸出檔案內容到螢幕上

  file filename: 得到檔案類型

  read var: 提示使用者輸入,並將輸入賦值給變數

  find: 搜尋檔案

  tee: 將資料輸出到標準輸出裝置(螢幕) 和檔案比如:somecommand | tee outfile

  basename filename: 返回不包含路徑的檔案名稱

  dirname filename: 返迴文件所在路徑

  sed: 尋找替換

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.