• Linux学习之八——利用变量


    一、变量的使用

    用$放在变量前面进行使用,例如:

    echo $PATH

    为了和别的字符隔开,可以用{}和"",例如

    echo ${PATH}nic

    echo "$PATH"nic

    二、变量的定义规则

    1. 变量名称只能是英文字母与数字,但是开头字符不能是数字

    2. 变量与变量内容以=连结, 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird Tsai』

    3. 变量内容若有空格符可使用双引号『"』或单引号『'』将变量内容结合起来,但双引号内的特殊字符如 $ 等,可以保有原本的特性,而单引号内的特殊字符则仅为一般字符 (纯文本)

    4. 可用将特殊符号变成一般字符;

    5. 在一串指令中,如果还需要由其他指令提供的信息,可以使用反单引号『`指令`』或 『$(指令)』。`是键盘上方的数字键 1 左边那个键,而不是单引号! 例如想要取得核心版本的设定可以这样:

    echo $version`version=$(uname -r)`

    6. 通常大写字符为系统默认变量,自行设定变量可以使用小写字符

    7. 可以定义数组,用var[index]=content的方式定义

    8. 默认定义的是字符串类型,若要定义其他类型需要用declare来定义

    declare [-aixr] variable

    选项与参数:

    -a :将后面名为 variable 的变量定义成为数组 (array) 类型

    -i :将后面名为 variable 的发量定义成为整数数字 (integer) 类型

    -x :用法与 export 一样,就是将后面的 variable 变成环境发量;

    -r :将发量设定成为 readonly 类型,该发量不可被更改内容,也不能 unset

    三、定义环境变量

    若变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量:

    export PATH

    四、取消变量

    unset paraname

    五、常用环境变量

    用env可以列出目前shell环境下的所有环境变量

    HOME 代表用户的家目录。

    SHELL 目前这个环境使用的SHELL 是哪支程序? Linux 默认使用 /bin/bash

    HISTSIZE 我们曾经下达过的指令可以被系统记录下来,而记录的『笔数』则是由这个值来设定的。

    MAIL 当我们使用 mail 指令收信时,系统会去读取的邮件信箱档案 (mailbox)。

    PATH 就是执行文件搜寻的路径

    LANG 编码设置

    RANDOM 0到32767之间的随机数

    六、用set可以观察所有变量

    $:本 shell 的 PID

    echo $$出现的数字就是你的 PID 号码。

    ?:上个执行指令的回传值

    如果执行正确则回传0

    七、 变量的更改

    变量设定方式                     说明

    ${变量#关键词}               若变量内容从头开始的数据符合『关键词』,则将符合的最短数据删除

    ${变量##关键词}             若变量内容从头开始的数据符合『关键词』,则将符合的最长数据删除

    ${变量%关键词}               若变量内容从尾向前的数据符合『关键词』,则将符合的最短数据删除

    ${变量%%关键词}            若变量内容从尾向前的数据符合『关键词』,则将符合的最长数据删除

    ${变量/旧字符串/新字符串}  若变量内容符合『旧字符串』则『第一个旧字符串会被新字符串取代』

    ${变量//旧字符串/新字符串} 若变量内容符合『旧字符串』则『全部的旧字符串会被新字符串取代』

    变量设定方式         str 没有设定             str 为空字符串         str已设定且非空

    var=${str-expr}  var=expr                var=                      var=$str

    var=${str:-expr} var=expr                var=expr                var=$str

    var=${str+expr}  var=                      var=expr                var=expr

    var=${str:+expr} var=                      var=                      var=expr

    var=${str=expr} str=expr var=expr   str不变 var=            str不变 var=$str

    var=${str:=expr} str=expr var=expr  str=expr var=expr   str不变 var=$str

    var=${str?expr}   expr 输出至 stderr   var=                       var=$str

    var=${str:?expr}  expr 输出至 stderr   expr 输出至 stderr    var=$str

  • 相关阅读:
    总结Android逆向入门成长必备技能
    BootKit病毒——“异鬼Ⅱ”的前世今生
    NSA武器库知识整理
    SQL菜鸟学习札记(二)
    SQL菜鸟学习札记(一)
    梦织未来Windows驱动编程 第06课 驱动对磁盘文件的操作
    梦织未来Windows驱动编程 第05课 小结(读取另一驱动,遍历所有驱动)
    梦织未来Windows驱动编程 第03课 驱动的编程规范
    【原创】信息搜索力
    【原创】经典排序回顾
  • 原文地址:https://www.cnblogs.com/studynote/p/4807121.html
Copyright © 2020-2023  润新知