赞
踩
变量指的是系统中可改变的量
系统环境变量在linux中为 PATH,由冒号分隔,记录了命令的存储路径
其他环境变量可通过 env 显示
命令 set 也可查看所有变量,此外与bash有关的变量也会被列举出来,此外set还可用于设置环境,加上参数 -u 表示变量为空是提示错误信息,-v表示信息被输出前会先原信息,-x表示指令被执行前,会显示指令内容
export除了可看自定义变量变成环境变量外,还可列出当前环境变量
命令 read 可从键盘中读取字符赋值变量,-p 后面接上提示,-t 接上等待秒数
命令 declare/typeset 用于声明变量类型,-a为数组,-i为整型,-x为环境变量,-r为只读变量,不加参数输出所有变量,-p显示变量类型,+为相反,如下是对数组的定义
默认变量为字符串型,对其的 ±*/ 并不会生效,需要将其声明为整型
此外整型计算还可以通过 (()) 里面放计算公式
而浮点型的计算则需要借助命令 bc完成
设置方式 | 功能 |
---|---|
${var#key} | 从左往右查找key,删除最短匹配内容 |
${var##key} | 从左往右查找key,删除最长匹配内容 |
${var%key} | 从右往左查找key,删除最短匹配内容 |
${var%%key} | 从右往左查找key,删除最长匹配内容 |
在#后面加上要删除的内容,从前往后查找
#和##搭配通配符*,分别表示删除最短匹配内容和最长匹配内容
设置方式 | 功能 |
---|---|
${var/key/newkey} | 从左往右查找第一个key,替换为newkey |
${var//key/newkey} | 从左往右查找所有key,替换为newkey |
设置方式 | 若test为空 | 若test=“” | 若test为非空字符串 | 总结 |
---|---|---|---|---|
var=${test-str} | var=str | var=“” (不变) | var=$test | - 可覆盖空 |
var=${test:-str} | var=str | var=str | var=$test | :- 可覆盖空及"" |
如下,若name为空,则name=song,若name不为空,则对name的设置无效
如下,若name='“,- 对name设置无效,加上 : 才可以对”"赋值
设置方式 | 若test为空 | 若test=“” | 若test为非空字符串 | 总结 |
---|---|---|---|---|
var=${test+str} | var为空 (不变) | var=str | var=str | + 可覆盖非空 |
var=${test:+str} | var为空 | var=“” | var=str | :+ 可覆盖非空但不包括"" |
如下为""时,+生效,:+不生效
设置方式 | 若test为空 | 若test=“” | 若test为非空字符串 | 总结 |
---|---|---|---|---|
var=${test=str} | var=test=str | test=“”(不变) var为空 | var=$test | = 覆盖空并改变判断值 |
var=${test:=str} | var=test=str | var=test=str | var=$test | := 覆盖空及""并改变判断值 |
如下当name2=“”,=不生效,:=生效
设置方式 | 若test为空 | 若test=“” | 若test为非空字符串 | 总结 |
---|---|---|---|---|
var=${test?str} | str输出stderr | var=“”(不变) | var=$test | ? 为空输出错误信息 |
var=${test:?str} | str输出stderr | str输出stderr | var=$test | :? 为空及""输出错误信息 |
如下当name2=“”,?不生效,:?生效
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。