linux脚本变量运算符,看脚本会用到的Linux和Unix下的变量运算符

一、删除变量内容运算符

#lqdflying='/home/lqd/flying/just/google.com' ---->定义变量

#echo ${lqdflying}---->完整呈现某个变量

/home/lqd/flying/just/google.com

#echo ${lqdflying##/*/} ---->eg.1

google.com

#echo ${lqdflying#/*/} ---->eg.2

lqd/flying/just/google.com

---->使用#,从最前边开始比较,若开头为'/',则删除两个'/'之间所有的数据,即/*/。如果有2个#,则删除最长的一段/*/(如eg.1);如果是一个#,则删除最短的一段(如eg.2)。

#echo ${lqdflying%%/*/} ---->eg.3

/home/lqd/flying/just/google.com

#echo ${lqdflying%%/*} ---->eg.4

(NULL)

#echo ${lqdflying%/*}---->eg.5

/home/lqd/flying/just

---->使用%,从最后边开始比较,若结尾为'/',则删除两个'/'之间的所有数据,即/*/(如eg.3,但是由于变量结尾不是/,所以比匹配,所以什么也没删除)。如果是两个%,则删除最长的一段/*(如eg.4);如果是一个%,则删除最短的一段/*(如eg.5)。

二、替换变量内容运算符

#lqdflying='/lqd/lqd/flying/just/google.com'---->定义变量

#echo ${lqdflying/lqd/LQD}---->eg.6

/LQD/lqd/flying/just/google.com

#echo ${lqdflying//lqd/LQD}

/LQD/LQD/flying/just/google.com ---->eg.7

---->/表示替换,一个/仅替换第一个(如eg.6),两个/则全部替换(如eg.7)。

三、条件判断运算符

---->lqdflying和word是两个变量

#LQD=${lqdflying:-word}

说明:若lqdflying变量未定义且非NULL,则返回其值,否则返回word的值

用途:若用户没有特别定义该变量,则返回默认值。

记忆:'-'运算符代表“退而求其次”,反正LQD一定要有值,你要使用lqdflying来定义了,也就算了,没定义,我给你一个默认的。

#LQD=${lqdflying:=word}

说明:若lqdflying变量未定义且非NULL,则返回其值,否则设置其值为word的值,并返回。

用途:一次性定义两个变量

记忆:'='运算符代表“赋值”,LQD和lqdflying都要有有赋值,你要是定义了lqdflying,就用你的,你要是没有定义,我给你一个默认的,再给LQD一个默认的。

#LQD=${lqdflying:+word}

说明:若若lqdflying变量未定义且非NULL,则返回其值,否则返回word的值,则返回word值,否则返回NULL;

用途:测试变量存在性,例如如果lqdflying已定义,则${lqdflying:+1}返回1

记忆:'+'表示'盖戳',看看lqdflying有没有料,有料,就盖个戳,这个戳就是word的值,然后返回LQD这个戳,要是lqdflying没有料,就返回NULL,告诉LQD一声说lqdflying这货没料。

附:如果:去掉,单纯是'-'、'+'、'=',则“若lqdflying变量未定义且非NULL”这句改为“若lqdflying变量未定义”,也就是说,lqdflying只要设置了就行,哪怕是设置成NULL。

以上内容由社区会员分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值