美文网首页
shell 基础(2)- 变量

shell 基础(2)- 变量

作者: 足__迹 | 来源:发表于2019-11-25 18:21 被阅读0次

    分类

    • 本地变量
    • 全局变量
    • 内置变量

    定义变量

    • 本地变量


      image.png

    单引号和双引号的区别
    单引号 所见即所得
    双引号 可以引用变量


    image.png
    • 全局变量


      image.png

    让定义的变量在所有的base中生效,需要在cat ~/.bashrc定义

    示例:

    方法一:
    [root@iz2ze8p943jz0rcey20ijlz ~]# pass='123456'
    [root@iz2ze8p943jz0rcey20ijlz ~]# export pass
    [root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
    pass=123456
    
    方法二:
    [root@iz2ze8p943jz0rcey20ijlz ~]# export pass1="$pass"
    [root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
    pass=123456
    pass1=123456
    
    #不同base调用刚才生成的全局变量,不能调用
    [root@iz2ze8p943jz0rcey20ijlz ~]# env | grep pass
    [root@iz2ze8p943jz0rcey20ijlz ~]# 
    
    

    示例2: 编辑可以全局使用的变量(可用于部署环境变量)

    # .bashrc 
    
    # User specific aliases and functions
    
    alias rm='rm -i'
    alias cp='cp -i'
    alias mv='mv -i'
    
    # Source global definitions
    if [ -f /etc/bashrc ]; then
            . /etc/bashrc
    fi
    export username="starry sky"
    
    ~         
    

    编辑完成就需要使用source 使修改生效


    唯一全局变量.png
    • 查看变量

    以下三种方法中脚本使用推荐使用第三种,可以避免报错


    image.png

    示例:

    [root@iz2ze8p943jz0rcey20ijlz ~]# echo $username
    starry sky
    [root@iz2ze8p943jz0rcey20ijlz ~]# echo '$username'
    $username
    [root@iz2ze8p943jz0rcey20ijlz ~]# echo ${username}
    starry sky
    
    • 内置变量
    image.png

    示例:


    image.png
    [root@iz2ze8p943jz0rcey20ijlz test]# bash read_variable.sh a b c
    当前执行的脚本名称read_variable.sh“
    echo 当前获取脚本的第一个参数a“
    当前获取脚本的第二个参数b“
    echo 当前执行的脚本中的参数总个数3“
    

    bash "test.sh" 这种形式启动时 ,$0才被设置成文件名。source是bash的内建命令,把文件读取到当前bash中执行,相当于在当前bash手动输入命令,所以$0是bash.

    相关文章

      网友评论

          本文标题:shell 基础(2)- 变量

          本文链接:https://www.haomeiwen.com/subject/nhujwctx.html