zoukankan      html  css  js  c++  java
  • shell 变量介绍

    变量命名规则

    变量名必须以字母或下划线开头,名字中间只能由字母,数字和下划线组成,大小写是区分的
    变量名的长度不得超过255个字符
    变量名在有效的范围内必须是唯一的
    在Bash中,变量的默认类型都是字符串类型
    "用户自定义变量"
        变量自定义的
    "环境变量" 
        这种变量中主要保存的是和操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的。
    "位置参数变量"   
        这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
    "预定义变量"
        是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
        
    "可以将一个命令的执行结果赋值给变量,但是需要使用命令替换符号"
    [root@ssgao shell]# cat start.sh 
    #!/bin/bash
    echo 'ssgao ai xiaoxiao'
    mypath=`pwd` //使用命令替换符,或来获取命令执行结果
    echo $mypath
    ​
    [root@ssgao shell]# cat pwd.sh 
    #!/bin/bash
    mypath=$(pwd) //使用$()来获取命令执行结果
    echo $mypath
    [root@ssgao shell]# sh pwd.sh 
    /root/shell
    ​
    "注意单引号和双引号的区别"
    注意单引号和双引号的区别,""号会把里面的变量值进行输出,''是把内容原封不动的输出,不会识别里面的变量。
    [root@ssgao shell]# cat start.sh 
    #!/bin/bash
    echo 'ssgao ai xiaoxiao'
    mypath=`pwd`
    touch log.log
    ifconfig >log.log
    patha="当前路径:${mypath}"
    pathb='当前路径: ${mypath}'
    echo $mypath //输出:/root/shell
    echo $patha //输出:当前路径:/root/shell
    echo $pathb //输出:当前路径: ${mypath}
    

    自定义变量

    '变量名=变量值'
        1) 变量不能使用数字开头
        2) '='左右两侧不能加空格:
        name="jie cao" //变量值有空格需要用""括起来   
    "变量调用"
        echo $变量名 //调用变量,在变量名前面加'$'符号
        192:~ aouo$ y=6 //声明变量
        192:~ aouo$ x=5 //声明变量
        192:~ aouo$ z=$x+$y  //调用变量x和变量y
        192:~ aouo$ echo $z //结果为5+6
    "变量的叠加"    
        x=123
        x="$x"456
        x=${x}456
        -----------------
        192:~ aouo$ x=123
        192:~ aouo$ echo $x // 结果为123
        192:~ aouo$ x="$x"456
        192:~ aouo$ echo $x //结果为123456  
    "查看所有变量"
         [root@ssgao shell]#  set  
         STORM_HOME=/root/storm/apache-storm-1.1.1
         TERM=xterm
         UID=0
         USER=root
    "删除变量" 
        unset 变量名  
        [root@ssgao shell]# name=ssgao //声明变量
        [root@ssgao shell]# echo $name //输出ssgao
        [root@ssgao shell]# unset name //删除变量
        [root@ssgao shell]# echo $name
     -bash: name: unbound variable
    

    位置参数变量

    $n
    n为数字,$0代表命令本身,$1~$9代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}
    $*
    这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
    $@
    这个变量也代表命名行中所有的参数,不过$@把每个参数区分对待
    $#
    这个变量代表命令行中所有参数的个数
    
    192.168.10.101:shell_start aouo$cat add.sh 
    #!/bin/bash
    no1=$1
    no2=$2
    no3=$(($no1+$no2))
    #变量no3的和是no1加no2
    echo $no3
    #打印变量no3的值
    -------------------------------------------------
    192.168.10.101:shell_start aouo$./add.sh 1 10
    11
    -------------------------------------------------
    $1 = 1 位置参数1
    $2 = 10 位置参数2
    

    预定义变量

    $?
    最后一次执行的命令返回状态,如果这个变量的值为0,证明上一次命令正确执行。如果这个变量的值非0
    证明上一个命令执行不正确了
    $$
    当前进程的进行号(PID)
    $!
    后台运行的最后一个进程的进程号(PID)
    
  • 相关阅读:
    web测试用例表(自用)
    程序员技术练级攻略
    整理:Google jQuery 引用地址大全和方法(转)
    开发神器之--Sublime Text
    Intellij编译时报“java: System Java Compiler was not found in classpath” 解决办法
    JAVA编译异常处理:java.lang.OutOfMemoryError: PermGen space
    mongo中查询Array类型的字段中元素个数
    BigDecimal进行除法divide运算注意事项
    用来代替本机IP的万能IP:127.0.0.1
    oracle中sys和System的默认密码
  • 原文地址:https://www.cnblogs.com/ssgao/p/8869717.html
Copyright © 2011-2022 走看看