• Linux 复习四


    第四章 shell程序设计I-入门

    一、shell脚本的基本概念

          shell脚本(script)是一个可执行的纯文本文件,有多个shell命令组成。

          命令的执行时从上而下、从左而右的分析和执行

          命令、参数间的多个空白都会被忽略

          空白行以及[tab]键所致的空白也会被忽略

          读取到第一个[enter]符号即开始执行命令

          如果脚本中需要换行则需用[enter]转义

          #是注释,任何加在#符号后的命令及文本全部被视为注释

          #!用于指定本shell script使用的shell名称

          shell脚本一般以.sh为后缀名

    二、shell脚本的执行方法

          1.直接命令行执行

              必须拥有shell脚本文件的可读和可执行权限(rx)

              路径要正确:a.绝对路径    /home/dmtsai/myscript.sh

                               b.相对路径    ./myscript.sh

                               c.通过变量PATH    将myscript.sh放在PATH指定的目录下

           2.以bash进程执行

              只要拥有shell脚本文件的可读权限(r)

              # bash myscript.sh

              或# sh myscript.sh

        type:查看命令的类型   -t:会显示可能的三种情况:file---外部命令、alias-----命令的别名、builtin-----内置的命令功能

                                        -a:将系统PATH定义的路径中所有含xxx名称的命令都列出来

        echo、unset:变量的显示与设置

        env、export:环境变量的相关操作

        read:变量的输入

        declare/typeset:数组与声明

    三、脚本中变量的使用

        1.变量的显示与设置

           使用echo命令显示变量的值:

            # echo $变量名

            # echo ${变量名}

           设置变量:# 变量名=变量值

           取消变量:# unset 变量名

        2.环境变量功能

           env:查看环境变量

           set:查看所有变量:包括环境变量和自定义变量(主要区别:作用域不用)

           环境变量在整个bash运行过程中有效,自定义变量只在当前进程中有效

           export:将自定义变量转化为环境变量

           # export 变量名

        3.从键盘读取变量值

           read:从键盘读取变量值,和用户交互,在shell script中经常使用

           # read [-pt] 变量名   -p:后面接提示语句

                                         -t:后面接等待的秒数

        4.声明变量类型

           使用declare或typeset能声明变量的类型

           # declare [-aixr] 变量名   -i:声明为整型

                                              -x:声明为环境变量

    四、数据流重定向和管道

         1.数据流重定向

         标准输入(stdin):代码为0,符号为<或<<

         标准输出(stdout):代码为1,符号为>或>>

         标准错误输出(stderr):代码为2,符号为2>或2>>

         将数据从指定的流输入或输出,就称为数据重定向

         标准输出流stdout默认情况下将数据输出到device

         使用>将数据输出重定向到文件

         >默认为覆盖文件内容,如果要追加则用>>

         2>:已覆盖的方式将错误信息输出到指定文件或设备上

         /dev/null:将错误信息忽略,及输出到黑洞

         <:标准输入流默认从键盘输入

         <<:用于设定结束输入的关键字

         2.管道

         管道命令的界定符号为“|”

         管道命令仅会处理stdout,对stderr会忽略

         管道命令必须要能够接收来自前一个命令的数据作为stdin

         选取命令cut、grep

         cut:将同一行的数据进行分解  -d:后面接分隔字符,与-f一起使用

                                                 -c:以字符的单位取出固定字符区间

                                                 -f:依据-d将一段信息分隔,-f指定取哪一段

         cut是从一行中取出部分信息,grep是按条件取出某行

         排序命令:sort、wc、uniq

         sort:用于对输入内容进行排序

         uniq:用于取出结果中的重复行

         wc:用于统计字、字符、行   -l:仅列出行

         3.双向重定向

         tee:能将数据流同时输出到文件与屏幕   -a:以追加的方式将内容输出到文件

        printf:文件的格式化输出命令

    第五章 shell程序设计II-进阶

    一、shell脚本的经典案例

    二、结构化控制语句的使用

          if-then语句

          1.if [表达式]; then

                         语句

             fi

          2.if [表达式]; then

                         语句

             else

                         语句

             fi

           3.if [表达式]; then

                          语句

              elif

                          语句

              else

                          语句

              fi

          case。。。esac语句

          1.case $变量名 in

                      “变量值”)

                           语句

                      ;;

                      “变量值”)

                           语句

                      ;;

                       *)

                           语句

                       ;;

            esac

            while循环

            1.while [ 条件表达式 ]

               do

                     语句

               done

            2.until [ 条件表达式 ]

               do

                     语句

               done

             for循环

             1.for 变量名 in value1 value2 value3

                do

                       语句

                done

              2.for ((初始值;终止条件;执行步长))

                do

                        语句

                done

    三、函数的使用

          function 函数名()

          {

                 程序段

          }

          #调用函数语法为:

          函数名

    四、脚本的调试

           sh:支持对脚本的语法检查和调试

            # sh [-nvx] scripts.sh

  • 相关阅读:
    WP7备注(13)(独立储存)
    WP7备注(14)(ContentPropertyAttribute)
    WP7备注(11)(页面跳转)
    WP7备注(10)(Accelerometer+GeoCoordinateWatcher+Map Service)
    WP7备注(12)(页面数据共享)
    WP7备注(18)(OpacityMask)
    WP7备注(15)(Resources)
    WP7备注(19)(ImageBrush|VideoBrush)
    WP7备注(17)(TextBlock和Inlines)
    vmware 复制其他电脑的linux无法上网问题
  • 原文地址:https://www.cnblogs.com/turningli/p/5589447.html
Copyright © 2020-2023  润新知