shell script

1、shell script的编写与执行shell

   一、shell script 的编写中还须要用到下面的注意事项:bash

    a、命令的执行是从上到下,从左到右地分析与执行oop

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

    c、空白行也将被忽略掉, 而且[tab]按键所得的空白一样视为空格键调试

     d、若是读取到一个Enter符号(CR),就尝试开始执行该行(或该串)命令进程

    e、至于若是一行的内容太多,则可使用“\[Enter]”来扩展至下一行ip

     f、"#"可做为批注。it

   二、执行文件(/home/sam/shell.sh)io

    一、直接命令执行: shell.sh文件必需要具有可读与可执行(rx)的权限,而后:function

      绝对路径: 使用/home/sam/shell.sh来执行

      相对路径: 假设工做目录为/home/sam/ , 则使用./shell.sh

      变量“PATH”功能: 将shell.sh放在PATH指定的目录内, 例如:~/bin/

    二、以bash进程来执行:经过“bash shell.sh”或“sh shell.sh”来执行

   三、script的执行方式的区别(source, sh script, ./script)

    一、利用直接执行的方式来执行script:

      不管是绝对路径/相对路径仍是$PATH内, 或者是利用bash(或sh)来执行脚本时,该script都会使用一个新的bash环境来执行(子进程)

    二、利用source来执行脚本: 在父进程中执行

2、善用判断式

  一、 利用test命令的测试功能

    如:test -e /sam && echo "exist" || echo "Not exist"

   

  二、利用判断符号[]

    如: [-z "$HOME"] ; echo $?

    注意:

      a、在括号[]内每一个组件度须要有空格键来分隔;

      b、在中括号内的变量,最好都以双引号括起来;

      c、在中括号内的常量, 最好都以单或双引号括起来。

  三、shell script 的默认变量($0 $1 ...)

    $0: 执行的脚本文件名

      $1,$2,...: 第1,2,...个参数

    $#: 表明后接的参数“个数”

    $@: 表明“$1”、“$2”、“$3”之意,每一个变量是独立的(用双引号括起来)

    $*: 表明"$1c$2c$3c$4",其中c为分隔字符, 默认为空格键

 

     shift: 形成参数变量号码偏移

      shift 会移动变量, 并且shift后面能够接数字, 表明拿掉最前面的几个参数的意思。

 

3、 条件判断式

   一、利用 if...then

     单层:

        if [条件判断式]; then

            逻辑

        fi <--if语句结束语

     多重:

        if [条件判断式]; then

           逻辑

        elif [条件判断式]; then

          逻辑

        else 

          逻辑

        fi

 

     二、利用case...esac判断

      case $变量名称 in

        "第一个变量内容" )

          程序段

          ;;

        "第二个变量内容")

          程序段

          ;;

         *)

          exit 1

          ;;

      esac

     3 、利用function功能

      function fname(){

        程序段

      }

 4、循环(loop)

    一、while do done, until do done(不定循环)

      while [ condition ]

      do

        程序段落

      done

        ----------》当condition条件成立时,就进行循环

       until [ condition ]

       do

         程序段落

       done

       -----------》当condition条件成立时,就终止循环

 

    二、for ... do...done(固定循环)

        for var in con1 con2 con3...

        do

          程序段落

        done

    三、for ...do ...done的数值处理

      for((初始值; 限制值; 执行步长))

       do

        程序段

      done

 

5、shell script的追踪与调试

   sh [-nvx] scripts.sh

    -n : 不要执行script 仅查询语法的问题

    -v: 在执行script前, 先将script的内容输出到屏幕上

    -x: 将使用到的script内容显示到屏幕上

相关文章
相关标签/搜索