Miracle

有梦想就不会觉得苦。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

shell

Posted on 2011-05-23 16:32  gsky  阅读(294)  评论(0编辑  收藏  举报

   1 简单地说,shell就是命令解析器,将用户输入的指令转换为相应的机器能够运行的程序。

    2 Shell是Linux系统中的一个重要的层次,它是用户与系统交互作用的界面。

    Shell除了作为命令解释程序以外,还是一种高级程序设计语言。利用Shell程序设计语言可以编写出功能很强、但代码简单的程序。

    3 shell脚本是一个包含一系列命令序列的文本文件。当运行这个脚本文件时,文件中包含的命令序列将得到执行。 

    4 Shell过程的建立和执行

      称作Shell文件或者Shell脚本(Shell script)。
      建立Shell过程的步骤同建立普通文本文件相同,利用编辑器(如vi或gedit)进行程序录入和编辑加工。

      shell脚本的第一行必须是如下模式:

      #!/bin/sh   符号#!用来指定该脚本文件的解析程序。

      当编辑好脚本后,如果要执行该脚本,还必须使其具有可执行属性: chmod +x filename。

      然后./filename 脚本就可以执行了。

    5 在shell编程中,所有的变量都由字符串组成,并且不需要预先对变量进行声明。例:

      #!/bin/sh

      #set variable a

      a="hello world"

      #print a

      echo "A is:"

      echo $a

    6 定义变量并赋值的一般形式是
      变量名=字符串
      例如,myfile=/home/lcd/ff/m1.c。

    7 用echo命令显示变量值。

      dir=/home/lcd/ff
      echo $dir
      /home/lcd/ff    
      echo dir
      dir  

    8 输入/输出命令
      1. read命令
         可以利用read命令由标准输入读取数据,然后赋给指定的变量。其一般格式是
      read 变量1 变量2…

      2. echo命令
         在前面例子中已使用过echo命令,它将其后的参数在标准输出上输出。各参数间以空格隔开,以换行符终止。

    9 Shell中的特殊字符
      Shell中除使用普通字符外,还使用了一些特殊字符,它们有特定的含义,在使用时应注意它们表示的意义和作用范围。
通配符 * ?
      通配符用于模式匹配,如文件名匹配、路径名搜索、字符串查找等。
      * 代表0个或多个字符
      ?代表一个字符
      例:
      ls 11*2?3  显示11开头的接着是若干个字符,最后是2加一个字符和3结束的文件 

      ls /etc/[0-9]*         将列出 /etc 中以数字开头的所有文件。 

    10 引号
       在Shell中引号分为2种:单引号、双引号。
      (1)双引号

       由双引号括起来的字符,除$、倒引号和反斜线(\)仍保留其特殊功能外,其余字符通常作为普通字符对待。
      (2)单引号
       由单引号括起来的字符都作为普通字符出现。

    11 注意

      1 变量赋值时,“=”左右两边都不能有空格

      2 BASH中的语句结尾不需要分号

      3 函数名跟大括号之间要有空格