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)
    
  • 相关阅读:
    leetcode701. Insert into a Binary Search Tree
    leetcode 958. Check Completeness of a Binary Tree 判断是否是完全二叉树 、222. Count Complete Tree Nodes
    leetcode 110. Balanced Binary Tree
    leetcode 104. Maximum Depth of Binary Tree 111. Minimum Depth of Binary Tree
    二叉树
    leetcode 124. Binary Tree Maximum Path Sum 、543. Diameter of Binary Tree(直径)
    5. Longest Palindromic Substring
    128. Longest Consecutive Sequence
    Mac OS下Android Studio的Java not found问题,androidfound
    安卓 AsyncHttpClient
  • 原文地址:https://www.cnblogs.com/ssgao/p/8869717.html
Copyright © 2011-2022 走看看