Linux Shell 編程學習筆記(1)

Linux Shell編程學習筆(2015-7-11)

一:Shell程序運行的三種方法

  • 賦予程序文件可執行權限,直接運行
      比如:chmod a+x shell.sh

  • 使用命令解釋器(即shell)解釋執行
      比如:bash shell.sh

  • 使用source命令執行
      比如:source shell.sh

二:Shell命令的種類

  Linux Shell命令主要有三種:內部命令, shell函數, 和外部命令
* 內部命令:內部命令是Shell解釋器本身包含的命令,在文件系統中沒有相應的可執行文件。例如,cd命令和echo命令就是兩個常用的Shell內部命令。命令行在執行內部命令時,不需要創建新的進程,當然也就不需要銷燬進程。

  • Shell函數:它是以Shell語言來書寫的一系列程序代碼,可以像其它命令一樣被引用。

  • 外部命令:外部命令是獨立於Shell的可執行程序,在文件系統中有相應的可執行文件。比如最常見的外部命令有:ls,find,locate,grep,ifconfig等。命令行在執行外部命令時,會創建一個當前Shell的復執進程來執行它,執行過程存在進程的創建和銷燬。

三:Shell執行命令的順序

  交互式的Shell在獲取用戶輸入的命令後,將按以下的固定順序尋找命令的位置:
1. 別名:使用“alias command=…”創建的命令
2. 關鍵字:如:if, for, while等
3. 函數:Shell語言書寫的代碼
4. 內部命令:Shell本身包含的命令,如:cd, echo, source等
5. 外部命令:二進制可執行程序或腳本程序

四:複合命令

  Linux Shell中可以使用“{}”和“()”將多條命令括起來,使其在語法上成爲一條命令。
  使用“{}”和“()”,他們的作用基本相同,唯一一點區別在於:用“{}”括起來的命令在本shell內執行,不產生新進程;用“()”括起來的命令在一個新的shell內執行,命令行shell會創建一個新的子shell進程。
  舉個例子:

    biantiao@lazybone1994-ThinkPad-E430:~$ A=1
    biantiao@lazybone1994-ThinkPad-E430:~$ ( A=2; echo $A; )
    2
    biantiao@lazybone1994-ThinkPad-E430:~$ echo $A
    1
    biantiao@lazybone1994-ThinkPad-E430:~$ { A=2; echo $A; }
    2
    biantiao@lazybone1994-ThinkPad-E430:~$ echo $A
    2
    biantiao@lazybone1994-ThinkPad-E430:~$ 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章