2.5.1 命令与参数

    Shell最基本的工作就是执行命令。以互动的方式来使用Shell很容易了解一点:每键入一道命令,Shell就会执行。像这样:
 
        [many@avention test]$ cd my_sh ; ls -l *sh
        -rwxrw-r--. 1 many many  85 Feb  7  2018 10.sh
        -rwxrw-r--. 1 many many 115 Feb  7  2018 11.sh
        -rwxrw-r--. 1 many many 102 Feb 12  2018 12.sh
 
 
    上述命令展示了UNIX命令行的原理:
 
    首先,格式很简单,以空白(Space 键或 Tab 键)隔开命令行中各个组成部分。
 
    其次,命令名称是命令行的第一个项目。通常后面会跟着选项(option),任何额外的参数(argument)都会放在选项之后。
 
    第三,选项的开头是一个破折号(或减号),后面接着一个字母。选项是可有可无的,有可能需要加上参数。不需要参数的选项可以合并。
 
    最后,分号( ; )可用来分隔同一行里的多条命令。Shell会依次执行这些命令。如果你使用的是 & 符号而不是分号,则Shell将在后台执行其前面的命令,这意味着,Shell不用等到该命令完成,就可以继续执行下一个命令。
 
    
    Shell识别三种基本命令:内建命令、Shell函数以及外部命令:
  • 内建命令就是由Shell本身所执行的命令。有些命令是由其必要性才内建的,例如cd用来改变目录,read会将来自用户(或文件)的输入数据传给Shell变量。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时会经常用到它。另外还有echo 与 printf 。
  • Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。
  • 外部命令就是由Shell的副本(新的进程)所执行的命令,基本的过程如下:
    • 建立一个新的进程,此进程即为Shell的一个副本。
    • 在新的进程里,在PATH变量内列出的目录中,寻找特定的命令。/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin 为PATH变量典型的默认值。当命令名称含有斜杠(/)符号时,将略过路径查找步骤。
    • 在新的进程里,以所找到新程序取代执行中的Shell程序并执行。
    • 程序完成后,最初的Shell会接着从终端读取下一条命令,或执行脚本里的下一条命令。
 
    当然,以上只是基本程序。Shell可以做的事很多,例如变量与通配字符的展开、命令与算数的替换等。
 
    父shell等待子shell完成。
 
 
posted @ 2018-09-19 16:57  Avention  阅读(127)  评论(0编辑  收藏  举报