• shell script


    一、shell script的编写与执行

       1、shell script 的编写中还需要用到下面的注意事项:

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

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

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

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

        e、至于如果一行的内容太多,则可以使用“[Enter]”来扩展至下一行

         f、"#"可作为批注。

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

        1、直接命令执行: shell.sh文件必须要具备可读与可执行(rx)的权限,然后:

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

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

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

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

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

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

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

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

    二、善用判断式

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

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

       

      2、利用判断符号[]

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

        注意:

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

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

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

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

        $0: 执行的脚本文件名

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

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

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

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

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

          shift 会移动变量, 而且shift后面可以接数字, 代表拿掉最前面的几个参数的意思。

    三、 条件判断式

       1、利用 if...then

         单层:

            if [条件判断式]; then

                逻辑

            fi <--if语句结束语

         多重:

            if [条件判断式]; then

               逻辑

            elif [条件判断式]; then

              逻辑

            else 

              逻辑

            fi

         2、利用case...esac判断

          case $变量名称 in

            "第一个变量内容" )

              程序段

              ;;

            "第二个变量内容")

              程序段

              ;;

             *)

              exit 1

              ;;

          esac

         3 、利用function功能

          function fname(){

            程序段

          }

     四、循环(loop)

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

          while [ condition ]

          do

            程序段落

          done

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

           until [ condition ]

           do

             程序段落

           done

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

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

            for var in con1 con2 con3...

            do

              程序段落

            done

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

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

           do

            程序段

          done

    五、shell script的追踪与调试

       sh [-nvx] scripts.sh

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

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

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

     

       

  • 相关阅读:
    [转]Asp.net中基于Forms验证的角色验证授权
    [转]npm常用命令
    [转]utf8编码引起js输出中文乱码的解决办法
    LEFT JOIN 和 RIGHT JOIN 运算
    [转].NET 数字格式化:忽略末尾零
    [译]Pro ASP.NET MVC 3 Framework 3rd Edition 目录及说明
    微信授权登录
    百度快照更新慢怎么办
    linux爱好者必须掌握的命令,linux基础命令集合
    input输入框只能输入数字、字母相关组合(正则表达式)
  • 原文地址:https://www.cnblogs.com/SamLXW/p/6233283.html
Copyright © 2020-2023  润新知