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:~$ 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章