• Linux之bash的变量


    1. 变量的显示,echo

      echo $变量   或    echo ${变量}

      eg. echo $HOME   或   echo ${HOME}

    2. 变量的设置

      变量的设置规则:

        (1)变量与变量内容以一个等号“=”来连接

            eg. myname=name

        (2)等号两边不能直接接空格符

        (3)变量名称只能是英文字母与数字,但不能以数字开头

        (4)变量内容若有空格符,可使用双引号或单引号将变量内容结合起来

            eg. myname="my name is XX"

            需要注意的是:

            1)双引号内的特殊字符,如$等,可以保有原本的特性

              eg. var="lang is $LANG"(其中,$LANG表示变量LANG的值)

                 则“echo $var”可得“lang is zh_CN.UTF-8”

            2)单引号内的特殊字符则仅为一般字符

              eg. var=‘lang is $LANG’(其中,$LANG表示变量LANG的值)

                 则“echo $var”可得“lang is $LANG”

        (5)可用转义字符“”将特殊符号(eg.【Enter】、$、、空格符、!等)变成一般字符

        (6)若变量需要在其他子进程执行,则需要以export来使变量变成环境变量

            eg. export PATH

        (7)通常,大写字符为系统默认变量,自行设置变量可以使用小写字符

        (8)取消变量的方法为,unset 变量名称

            eg. unset myname

        (9)在一串命令中,还需要通过其他命令提供信息

            eg. `命令`   或   $(命令)

           注意,第一个符号为反单引号

    3. 环境变量,env   或   export

        (1)HOME,代表用户的主文件夹

        (2)SHELL,告知我们目前这个环境使用的shell是哪个程序,Linux默认使用/bin/bash的

        (3)HISTSIZE,“历史命令”,是我们曾经执行过的命令可以被系统记录下来,而记录的“条数”则是由这个值来设置的

        (4)MAIL,在收信时系统会去读取的邮件信箱文件

        (5)PATH,执行文件查找的路径,目录与目录之间以冒号“:”分隔,由于文件的查找是依据顺序按照PATH变量内的目录来查询的,所以PATH中目录的顺序也是十分重要的

        (6)LANG,重要!!!语系数据,中文编码通常是zh_CN.gb2312或zh_CN.UTF-8

        (7)RANDOM,随机数。我们可以通过这个随机数文件相关的变量($RANDOM)来随机去的随机数量。在BASH环境下,RANDOM的取值范围为0~32767

    4. 查看所有变量(包括环境变量与自定义变量),set

    5. 查看Linux到底支持多少语系,locale

    6. 声明变量的类型,declare   或   typeset

       declare [-aixr] valiable

        (1)-a,将变量valiable定义为数组类型

        (2)-i,将变量valiable定义为整数数字类型

        (3)-x,与export一样,将变量valiable定义为环境变量

        (4)-r,将变量valiable设置成为readonly,不可被更改内容,也不能重设

    7. 变量内容的删除、替换

    变量设置方式 说明
    ${变量#关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除
    ${变量##关键字} 若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除
    ${变量%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除
    ${变量%%关键字} 若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除
    ${变量/旧字符串/新字符串} 若变量内容符合“旧字符串”,则第一个旧字符串会被新字符串替换
    ${变量//旧字符串/新字符串} 若变量内容符合“旧字符串”,则全部的旧字符串会被新字符串替换

     

     

     

     

     

     

    8. 变量的测试与内容替换

        判断某个变量是否存在,减号“-”

          eg. username=${username-root}

           (1)若变量username不存在或为空时,“echo $username”的结果为root

             (2)若变量username存在且不为空时,“echo $username”的结果为username的值

          注,如果要求,在username未设置或为空字符串时,都将username内容设置为root

            → 则有,username=${username:-root}

        若只是想知道变量是否存在,如果不存在,就告知“notexit”,此时就可以用“?”

          eg. username=${username?notexit}

           (1)若变量username不存在,“echo $username”的结果为notexit

           (2)若变量username存在,则“echo $username”的结果为username的值

  • 相关阅读:
    java web spring challenge01
    eclipse的一个小失误
    创建线程的方式三:实现Callable接口。 --- JDK 5.0新增
    线程通信的应用:经典例题:生产者/消费者问题
    8.5 练习
    8.4 练习1
    LockTest.java
    DeadLock.java
    线程死锁
    使用同步机制将单例模式中的懒汉式改写为线程安全的
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/7868166.html
Copyright © 2020-2023  润新知