shell編程基礎-總結

 

 

Shell程序的基本結構

#!/bin/bash

#hello

echo 'hello Linux'

echo 'this is a shell file'

 


 

這個程序很簡單,但包含了shell程序的下面一些基本特徵:

(1)所有的shell程序第一行都是以#!開頭。後面爲執行此shell程序的shell解釋器且與名稱。

(2)程序的第二行以註釋的方式寫出程序的名字,這是shell編程的一種習慣。

(3)最簡單的shell程序就是一組shell命令。這裏只是使用了兩個echo命令顯示了兩個字符串。

 

 

shell的編輯、保存與執行

 

   我們可以使用gedit,vim等任意一個文本編輯器來編寫shell腳本。

   shell程序是一個普通的文本,需要添加可執行權限以後才能執行。編輯保存後,需要執行一個命令,使得shell腳本變爲可執行文件。命令爲:chmod -x filename

   這時,shell腳本文件才變爲一個可執行文件。只要在該腳本所在文件目錄,輸入./filename即可執行該腳本。

 


shell程序中的變量

   shell程序中需要用變量來存儲程序的數據。shell中的變量分爲 局部變量、環境變量、位置變量三種。

1、局部變量

   shell語言是解釋型語言,不需要像C或java語言一樣編程時需要事先聲明變量。在shell中,對一個變量進行賦值時,就定義了變量。局部變量指的是隻在當前的進程和程序中有效的變量。

   shell程序的變量是無數據類型的,可以使用同一個變量存放不同數據類型的值。變量賦值之後只需在變量前面加一個$訪問變量的值。可以用賦值符號(=)爲變量賦值。如果對一個變量賦值是沒有空格的字符串,那麼可以不用引號。

2、環境變量

   環境變量是在一個用戶的所有進程中都可以訪問的變量。系統中常常使用環境變量來存儲常用的信息。

   環境變量的查看: 使用export命令可以查看系統的環境變量的列表。

   環境變量的訪問: 環境變量的訪問,需要在一個環境變量的前面加一個$符號。

   環境變量的定義: 可以用export命令來定義一個環境變量。環境變量的命令一般都是大寫的。

   環境變量的刪除: 刪除自己定義的環境變量,可以用unset命令。

3、位置變量

   位置變量是指的shell程序在運行時傳入的參數。程序中可以用變量的形式來調用這些參數。這些參數被存放到1~9的9個變量名中,被形象的稱爲位置變量。同普通變量一樣,位置變量用$前綴加這個數字來表示。

   在位置變量中,$0的值爲bash。$1以後的變量是輸入參數的列表。

 

 

shell程序中變量的賦值

   shell中使用'='進行變量的賦值,也可以用等號來改變或初值化一個變量的值。要給一個變量賦值時,就這麼寫:變量名=數值。要去用變量的值時,只需在變量名前加一個$符號。

   !!!注意:給變量賦值時,不能在“=”兩邊留空格。

 

算數運算符

   shell中常用的算術運算符爲:+、-、*、/、**、%、+=、-=、*=、/=、%=。其中**爲對兩個變量做冪運算。

   注:當輸入以下命令時:echo 1+2。    shell中並沒有輸出計算結果3,而是輸出了1+2。要進行數值計算,在shell中有三種表達方式:

(1)、用expr改變運算順序。expr用於整數值計算。可以用echo `expr 1 + 2`來輸出1+2的結果,用expr表示後面的表達式爲一個數學運算。(注意:`不是單引號,而是“TAB“鍵上面的那個符號。

(2)、用let指示數學運算。可以先將運算的結果賦值給變量b,命令是 let b=1+2,然後再用 echo $b來輸出b的值。

(3)、用$[]表示數學運算。將一個數學運算寫到$[]符號的中括號中,中括號中的內容先進行數學運算。

 

輸入和輸出

   echo命令可以輸出文本或變量的值,是shell中最常用的輸出方式。結果可以輸出到終端也可以寫入到文件。

   echo $str         #將結果輸出到終端

   echo $str>file    #將結果保存到文件file中。如果沒有,則新建一個文件

                     #如果有了則會覆蓋原來的文件

   echo $str>>file   #將結果追加到文件file中

 

   echo的格式控制字符:/c,/t,/n

   注意:如果是要輸出特殊字符,必須加-e選項,否則輸出的結果中會直接輸出字符。加-n選項可以禁止echo輸出後的換行。

 

read命令讀取信息

    read命令可以從鍵盤或文件中讀入信息,並賦給一個變量。read命令讀取信息的各種方法:

(1)、如果只讀入一個變量,會把鍵盤上輸入的所有信息賦給這個變量。按“Enter“鍵結束輸入。

(2)、如果輸入多個變量,用空格鍵將輸入的變量隔開。如果輸入變量的個數多於需要讀取變量的個數,將會把剩餘的變量賦值給最後一個變量。

(3)、在讀取語句後面添加<filename,表示從文件中讀取數據,並且賦值給變量。

 

測試語句

    注:$?用於保存上一個命令的結果

    test命令的測試結果,返回0時表示測試成功,返回1時表示測試失敗。

    用中括號可以代替test命令。這種方法和test命令的原理相同。需要注意的是:中括號裏面的前後都要有一個空格。如: [ a -eq b ] 纔是標準的寫法。

    測試有文件狀態測試,數值測試,字符串測試,邏輯測試。每一個測試對應的測試參數都不一樣。

 

流程控制結構

if語句

   每一個if都要有一個fi與之相匹配。

   if ....; then
    ....
   elif ....; then
       ....
   else
      ....
   fi




這些都只是shell編程最簡單的應用與實現,要想進步,還得再往深處研究,主要是多加練習編寫shell腳本程序。熟能生巧。




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章