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

shell脚本基础----变量

时间:2018-08-01 18:15:30      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:字母   lse   $?   false   表达   .sh   流程控制   算术运算   ext   

  • 1.1shell的定义

    1.命令的堆积
    2.特定的语法与特定的命令组成的文件

    执行脚本命令

    bash   test.sh   不需要添加执行权限,使用解释器直接解释
    sh    tesh.sh
    ./tesh.sh     相对路径,需要添加执行权限
  • 1.2shell脚本基础---变量

    变量:用一个固定的字符串表示不固定的内容
    变量名称注意事项

    1.不能以数字开头(包含字母、数字、下划线)
    2.不能使用程序中的保留字(例如:if   for)
    3.不能跟系统中已有的环境变量重名(尽量不要全部使用大写,尽量不要用‘_’下划线开头)
    4.见名知义

    变量类型

        "字符型"     例如:a=abc
        "数字型"       整型      浮点型,例如:a=1.1
        "布尔型“(是否)   true   false

    变量操作

    设置变量 
    引用变量

    $变量名
    ${变量名}

    **bash特性**
          "反斜杠    \   使反斜杠后面的一个变量变为字符串"
         "单引号      ’   转义其中所有的变量为单纯的字符串"
         "双引号    ""    保留其中的变量属性,不进行转义处理"
         "反引号    ``     把其中放入命令执行后返回结果"
    撤销变量(unset  a  作用范围:仅在当前shell中有效)
    

    bash变量类型

    环境变量

    export     作用域为当前shell进程及其子进程
    

    技术分享图片

    本地变量(局部变量)

    "Var_name=valuue"  本地变量,作用域为当前shell进程。对当前shell外的其他shell进程,包括当前shell的父shell,子shell进程均无效
    "Local  var_name=value"   局部变量,作用域为当前代码段,常用于函数

    位置变量

    $1,$2    用于引用脚本的参数
    shirt      依此向前推进

    特殊变量(bash内置的,用来保存某些特殊数据的变量,也称系统变量)

    "$#        是传给脚本的参数的个数"
    "$0         是脚本本身的名字"
    "$!          是shell最后运行的后台Process的PID"
    "$@        是传给脚本的所有参数的列表"
    "$*          是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个"
    "$$         是脚本运行的当前进程ID号 "
    "$?         是显示上条命令的退出状态,0表示没有错误,其他表示有错误"
    

    bash内建环境变量

    "[root@yaoxiaorong ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    
    [root@yaoxiaorong ~]# echo $SHELL
    /bin/bash
    
    [root@yaoxiaorong ~]# echo $UID
    0
    
    [root@yaoxiaorong ~]# echo $HISTSIZE
    1000
    
    [root@yaoxiaorong ~]# echo $HOME
    /root
    [root@yaoxiaorong ~]# echo $PWD
    /root
    
    [root@yaoxiaorong ~]# echo $HISTFILE
    /root/.bash_history
    
    [root@yaoxiaorong ~]# echo $PS1
    [\u@\h \W]\$ "
    

    只读变量

       readonly   不能修改值,不能销毁,只能等shell进程

    脚本基础
    定义:按实际需求,结合命令流程控制机制实现的源程序
    程序返回值

    程序执行的结果
    程序状态返回代码(0-255)
    0:正确执行
    1-255:错误执行,1、2、127系统预留,有特殊意义
    

    脚本测试

    bash -n test.sh     检查脚本是否有语法错误
    bash  -x  test.sh    单步执行,检查脚本错在那里
    

    写脚本注意事项

    禁止将未成功执行过的代码直接写进脚本
    脚本中的命令一定要用绝对路径

    shell算术运算

    A=3
    B=6
    let  C=$A+$B   表达式
    C=$[$A+$B]    表达式
    C=(($A+$B))    表达式
    C=` expr  $A   + $B `  算术运算表达式,表达式各操作及运算符之间要有空格,而且要使用命令引用   

    shell脚本基础----变量

    标签:字母   lse   $?   false   表达   .sh   流程控制   算术运算   ext   

    原文地址:http://blog.51cto.com/13835001/2153303

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