Linux: 变量

今天回顾下 Linux 的变量
本次内容来此 书本 鸟哥Linux私房菜,特此声明;

1. 变量的命令规则

  • 变量与变量的内容以一个等号来连接
    • myname=Coder
  • 等号两侧不能有空格:空格在变量值中需要做转义处理
    • nyname = Coder #command not found
  • 变量名必须以 字母开头,可以由字母和数字组成, 切记不能以数字开头,会报错
    • 9myname=Coder # command not found
  • 变量值中要是有空格需要处理
    • 用双引号将变量值结合起来
      • var=”lang is”
    • 用单引号将变量值集合起来
      • var=’lang is’
    • 使用转义字符 \
      • var=lang\ is

那么双引号和单引号的区别是什么呢?

  • 双引号 : 在出现特殊字符如 $ 等,可以保持原本的特性:
    • var=”lang is $LANG” == lang is en_US.UTF-8
  • 单引号 : 在出现特殊字符式子,按一般纯文本字符处理
    • var=”lang is LANG"==langis LANG
  • 变量值得内容增加时,
    • PATH=”$PATH”:/~/bin
    • PAHT=${PATH}:/home/bin
  • 在一串指令的执行中,还需要执行其它额外的指令所提供的信息时:
    • 使用 $(指令)
      • var=/lib/modules/$(uname -r)/kernel
    • 使用 ‘指令’
      • var=/lib/modules/’uname -r’/kernel
  • 将变量设为环境变量
    • export PATH
  • 取消变量:
    • unser myname

2. 环境变量的功能;

  • 使用 env 和 export 查看环境变量与常见环境变量说明;
  • 使用 set 观察所有的变量 环境变量与自定义的变量;
  • export var: 自定义变量转换成环境变量
    • 对于环境变量和自定义变量的说明大家都知道,就不复习了,引用书上一段话:当启动一个shell, OS 会分配一记忆区给 shell 使用,
      这个内存里的变量可以给子程序使用;若在父程序利用 export 功能,可以让自定义变量的内容写到上述的记忆区当中(环境变量);当加载另一个 shell 时(亦即启动一个子程序,而离开了原本的父程序,)子 shell 可以将夫 shell 的环境变量所在的记忆区块倒入到自己的环境变量区块当中;
  • 变量的键盘读取
    • read -p “Please keyin you filename: ” filename
      • system.in readme.txt
    • echo $filename : readme.txt
  • 宣告变量的类型
    • declare [-aixr] var
      • -a : 将var 定义为数组类型
      • -i : 将 var 定义为整数类型
      • -x : 将 var 声明为环境变量
      • -r : 将变量设置为只读
  • 数组变量
    • var[1]=”small”
    • var[2]=”big”
    • var[1], {var[2]}”

3. 变量内容的删除、取代和替换

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

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

    • 若变量内容从尾部开始的数据符合 关键词,则将符合的 最短 数据删除,
  • ${变量%%关键词}
    • 若变量内容从尾部开始的数据符合 关键词, 则将符合的 最长 数据删除,

  • ${变量/旧字符串/新字符串}

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

    • 若变量内容符合旧字符串,则 全部 旧字符串会被新字符串取代,

变量初始值得设定: 判定一个变量是否存在,如果变量存在则使用既有的设定,如果变量不存在则给定一个常用的设定。

  • var1=${var2-expr}
    • 如果var2没有设定,则var1就取expr的值; 否则取var2设定的值;
  • var1=${var2:-expr}
    • 如果var2么有设定,或者为空,则var1取expr的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值