Bash shell的構成

1、shbang行    “shbang”行是腳本的第一行,它讓內核知道使用哪種shell來解釋腳本中的行,shbang行是由一個#!後面再加上shell的完整路徑組成的,在其後還可以再跟上各種選項用來控制shell的行爲:

  1. #!/bin/bash  

2、註釋    註釋由一個符號#後面跟一些描述行的說明組成,它們可以從行的任意位置開始,到行的末尾結束: 

  1. #!/bin/bash  
  2. #example comment1  
  3.         #example comment2  
  4.                 #example comment3  

3、通配符    shell中有些字符具有特殊意義,它們被稱爲shell的元字符或者通配符,這些字符既不是數字也不是字母,如果*、?、[、]、<、>、2>、>>、|等,*、?、[、]符號通常用於文件名的擴展,而<、>、2>、>>、|這些符號則用於標準I/O的重定向和管道,爲了避免這些特殊字符被shell解釋,它們必須被應用:

  1. #!/bin/bash  
  2. #example comment1  
  3.         #example comment2  
  4.                 #example comment3  
  5.   
  6. rm *  
  7. ls ??  
  8. cat file[1-3]  
  9. echo "how are your?"  

4、顯示輸出    echo命令用於向屏幕顯示輸出信息,此時通配符必須使用反斜槓或者配對引號進行轉義

  1. echo "how are you?"  

5、局部變量    局部變量的作用域被限制在當前的shell(進程)中,當這個腳本執行結束後,就超出了局部變量的作用域,它們就不可以再使用了。shell內置的declare命令可以用來定義局部變量,可以創建局部變量併爲其賦值:

  1. variable_name=value  
  2. declare variable_name=value  
  3. name="john doe"  
  4. x=5  

6、全局變量    全局變量又稱爲環境變量,它們由內置的export命令創建。它們爲當前運行的shell(進程)以及由此shell(進程)派生的所有子進程創建,當腳本執行結束後,這些全局變量也超出作用域。帶-x選項的內置命令declare也用於設置環境變量,並且將其導出(export):

  1. export VARIABLE_NAME=value  
  2. export PATH=/bin:/usr/bin:.  
  3.   
  4. declare -x VARIABLE_NAME=value  

注意:在局部變量和全局變量定義、賦值時,變量名與賦值符號之間不能有空格,賦值符號與變量值之間也不能有空格:

variable_name=value    正確

variable_name = value  錯誤

variable_name =value   錯誤

variable_name= value   錯誤

7、提取變量值    使用美元符號$可以提取變量的值:

  1. echo $variable_name  
  2. echo $name  
  3. echo $PATH  

8、讀取用戶輸入    shell可能會要求用戶輸入信息,read命令用於從用戶輸入中讀取一行,如果read命令有多個參數,則shell會將輸入的這一行分解爲多個單詞(word),每個單詞用於給一個變量賦值:

  1. echo "what is your name?"  
  2. read name  
  3. read name1 name2 name3  

9、參數    可以在命令行中給腳本傳遞參數,在腳本中利用位置參數來獲取參數的值:

  1. $scriptname arg1 arg2 arg3  
  2.   
  3. echo $1 $2 $3  
  4. echo $*  
  5. echo $#  

$1、$2、$3表示具體的位置參數

$*表示所有的位置參數

$#表示位置參數的個數

10、命令替換    Linux命令的輸出可以被賦值給一個變量,或者通過使用反引號引用命令,在字符串中使用該命令的輸出。在Bash shell中還提供了一種新的語法:不使用反引號,而是將命令包含在由美元符號開始的一對圓括號中即可。

  1. variable_name=`command`  
  2. variable_name=$(command)  
  3. echo $variable_name  
  4.   
  5. echo "today is `date`"  
  6. echo "today is $(date)"  
  1.   
  1. <pre name="code" class="plain">liuwei@jupiter:~$ echo "today is `date`"  
  2. today is Thu Jul 28 20:47:46 CST 2011  
  3. liuwei@jupiter:~$ echo "today is $(date)"  
  4. today is Thu Jul 28 20:48:00 CST 2011  
  5. liuwei@jupiter:~$ echo "today is $( date )"  
  6. today is Thu Jul 28 20:48:18 CST 2011</pre>  

注意$()中的空格,是允許的。

11、數組


12、運算符


13、算術運算


14、條件語句


15、循環語句


16、函數

文章轉自:http://blog.csdn.net/xiruanliuwei/article/details/6641971

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