zoukankan      html  css  js  c++  java
  • Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解

    目录

    Bash变量

    Bash变量注意点

    用户自定义变量

    环境变量

    位置参数变量

    预定义变量

    Bash变量

    用户自定义变量:在Bash中由用户定义的变量。
    环境变量:这种变量中主要保存和系统操作环境相关的数据。
    位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。
    预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。
    

      

    Bash变量注意点

    1.变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是"2name"则是错误的。
    
    2.在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必须指定变量类型为数值型。
    
    3.变量用等号连接值,等号左右两侧不能有空格。
    
    4.变量的值如果有空格,需要使用单引号或双引号包括。
    
    5.在变量的值中,可以使用""转义符。
    
    6.如果需要增加变量的值,那么可以进行变量值得叠加。不过变量需要用双引号包含"$变量名"或用${变量名}包含。
    
    7.如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含。
    
    8.环境变量名建议大写,便于区分。
    

      

    用户自定义变量

    在用户当前的shell进程中使用
    一般在 $HOME/.bash_profile 中定义。
    也可以在命令行定义,但只在用户当前shell进程中有意义,如果在shell中启动另一个进程或退出,此值将无效。
    

      

    变量定义:
    name="liyi"
    
    变量叠加:
    name=123
    name="$name"456
    name=${name}789
    
    变量的调用
    echo "$name"
    或
    echo ${name}
    
    变量查看
    set
    
    变量删除
    unset name
    

      

    环境变量

    环境变量适用于所有用户进程
    在/etc/profile中进行定义
    在用户进程使用前,必须用export命令导出;建议环境变量都大写。
    

      

    设置环境变量
    export 变量名=变量值
    
    
    查看环境变量取值
    echo $var_name
    
    查询变量
    env
    
    删除变量
    unset变量名
    注:该命令只是从当前用户进程中删除,不会从文件/etc/profile删除
    

      

    嵌入shell变量

    一般来讲,BASH有一些预留的环境变量名,这些变量名不能做其他用
    途,通常在/etc/profile中建立这些嵌入的环境变量,但这不绝对,取决于用户
    
    shell的变量列表:
    CDPATH; EXINIT; HOME; IFS; LOGNAME; MAIL; MAILCHECK; PATH; PS1; PS2; SHELL; TERMINFO; TERM; TZ
    

      


    重要环境变量详解

    PATH变量:系统查找命令的目录,当我们在执行命令时,系统会到这些目录去寻找命令,然后执行。
    
    假设现在创建一个文件test.sh
    chmod 755 test.sh
    ./test.sh
    
    如果你不想这么麻烦,怎么办?
    PATH="PATH":/root(后面为存放test.sh的目录)
    

      

     

     PS1变量

     默认格式:

     

    可以定义格式的例子:

    PS1='[u@	w]$ '
    
    PS1='[u@@ h # W]$ '
    
    PS1='[u@h W]$ '
    

      

    总结:

    使用命令定义的环境变量在下次重启就不会生效。

    定义永久环境变量在/etc/profile文件中定义。

    位置参数变量

    我刚开始听到名字的时候,我就想到了python中sys.argv[]的功能,其实位置参数变量和它很相似。

    都是接收外部参数,这个参数是用户从外部输入的,第一个$0为程序本身路径,从第二个参数起为用户输入的参数。

     

     例子

    #!/bin/bash
    echo $0
    echo $1
    echo $2
    echo $3
    

      

    #!/bin/bash
    num1=$1
    num2=$2
    sum=$(($num1+$num2))
    echo $sum
    

      

    预定义变量

     

     

     

  • 相关阅读:
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    我的友情链接
    使用kubespray在国内安装Kubernetes(1)
    docker国内镜像拉取和镜像加速registry-mirrors配置修改
    docker pull很慢解决办法
    Docker 国内仓库和镜像
  • 原文地址:https://www.cnblogs.com/-wenli/p/10364663.html
Copyright © 2011-2022 走看看