zoukankan      html  css  js  c++  java
  • 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内容显示到屏幕上

     

       

  • 相关阅读:
    hdu 2485 Destroying the bus stations 迭代加深搜索
    hdu 2487 Ugly Windows 模拟
    hdu 2492 Ping pong 线段树
    hdu 1059 Dividing 多重背包
    hdu 3315 My Brute 费用流,费用最小且代价最小
    第四天 下载网络图片显示
    第三天 单元测试和数据库操作
    第二天 布局文件
    第一天 安卓简介
    Android 获取存储空间
  • 原文地址:https://www.cnblogs.com/SamLXW/p/6233283.html
Copyright © 2011-2022 走看看