zoukankan      html  css  js  c++  java
  • 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的值

  • 相关阅读:
    LeetCode 485. Max Consecutive Ones
    LeetCode 367. Valid Perfect Square
    LeetCode 375. Guess Number Higher or Lower II
    LeetCode 374. Guess Number Higher or Lower
    LeetCode Word Pattern II
    LeetCode Arranging Coins
    LeetCode 422. Valid Word Square
    Session 共享
    java NIO
    非阻塞IO
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/7868166.html
Copyright © 2011-2022 走看看