码迷,mamicode.com
首页 > 系统相关 > 详细

shell编程入门

时间:2018-12-08 11:29:27      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:enter   stat   状态码   环境变量   $?   $2   state   特殊变量   fat   

shell编程入门


变量类型:

  环境变量:

    作用域为当前shell以及其子shell

    创建:export VarName

  本地变量

    作用域:为整个bash进程,进程结束该变量就被撤销了

    创建: VarName=Value

  局部变量:

    作用域:只能是某个函数,也只能在函数中使用

  位置变量:用来引用函数的参数

    例如:./file.sh /etc/fatab /etc/initab

        $1:/etc/fstab

        $2:/etc/initab

        $n:..

        shift:第一个位置变量被删除,后面的位置变量一次进1、

        shift n:一次删除n个位置变量,后面的位置变量依次进你n

  特殊变量:

    $?:返回上一个命令的执行状态返回值

    $#:表示位置参数的个数

    $*:位置参数列表

    $@:位置参数列表

    

    程序执行状态有两种返回值

      一个是0:表示执行成功

      一个是(1-255,其中1,2,127系统留用)表示执行错误

  脚本在执行时会启动一个子shell进程:

    命令行中启动的脚本会继承当前shell环境变量

    系统自动执行的脚本(非命令行启动)就需要自我定义需要的各环境环境变量

脚本基础:

  第1行为shebang----->指定解释器比如:/bin/bash

  脚本执行的几种方法:

    1、给予该脚本一个执行权限,然后输入文件的路径就可以执行

    2、将该脚本所在的路径写入全局变量PATH中去,直接输入该脚本的名称即可执行


bash中的条件判断:

  1、整数测试

  2、字符测试

  3、文件测试

条件测试的表达式‘

  [ expression ]

  [[ expression ]]

  test expresssion

整数比较:

  -eq :测试两个整数是否相等

  -ne:测试两个整数是否不相等

  -gt:测试一个整数是否大于另一个整数

  -lt:测试一个整数是否小于另一个整数

  -ge:大于或等于

  le:小于等于

命令间逻辑关系(短路原则):

  $$:逻辑与

  ||:逻辑非


条件语句:

  1

  if [] ; then

  statement1

  statement2

  ..........

  fi

  2

  if []

  then

    statement1

    statement2

    ..........

  fi

  3

   if  [] ;then

     elif [] ;then

     elif [] ;then

      ......

   else

  fi

文件测试:

  -e FILE--->测试文件是否存在

  -f FILE--->测试文件是否是普通文件

  -d FILE----->指定路径是否为目录

  -r FILE------>测试当前用户对指定文件是否具有读权限

  -w FILE----->测试当前用户对指定文件是否具有写权限

  -x FILE------>测试当前用户对指定文件是否具有执行权限

定义脚本的退出状态码:

  exit:退出脚本

  如果脚本没有明确定义退出状态吗,那么,最后执行的一条命令的退出状态吗为脚本的退出码

测试脚本是否有错误:

  bash -n 脚本名称--->错误信息不一定可靠

  bash -x 脚本名称--->单步执行

 

  

  

  

 

  

shell编程入门

标签:enter   stat   状态码   环境变量   $?   $2   state   特殊变量   fat   

原文地址:https://www.cnblogs.com/The-eassy-of-mindon/p/10077762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!