linux变量内容的删除与替代${}

bash 对${}定义了不少用法。对变量的操作及判断是一个十分有用的工具,应好好学习一下,以下是说明的表列

变量的删除

${parameter#word}

${parameter##word}

${parameter%word}

${parameter%%word}

变量的提取

${parameter:offset}

${parameter:offset:length}

变量的替换

${parameter/pattern/string}

${parameter//pattern/string}

变量的删除、提取、替换

# file=/dir1/dir2/dir3/my.file.txt //定义一个变量

# echo $file //显示定义的变量

/dir1/dir2/dir3/my.file.txt

# echo ${file#*/} //删除/和/左边的字符串,最短匹配的

dir1/dir2/dir3/my.file.txt

# echo ${file##*/} //删除/和/左边的字符串,最长匹配的

my.file.txt

# echo ${file%/*} //删除/和右边的字符串,最短匹配

/dir1/dir2/dir3

# echo ${file%%/*} //删除/和右边的字符串,最长匹配,全部删除完了,因此为空置


# echo ${file:5}

/dir2/dir3/my.file.txt //提取 这个不知如何解释,没查到

# echo ${file:0:5} //提取第5个字节左边的5个 这个不知如何解释,没查到

/dir1

# echo ${file:5:6} //提取第5个字节的右边6个字节

/dir2/

# echo ${file/dir/path} //用path替换最左边的dir,其中/应该是参考符,如果没有/的变量内容应该如何替换?

/path1/dir2/dir3/my.file.txt

# echo ${file//dir/path} //用path替换全部的dir

/path1/path2/path3/my.file.txt

#

利用 ${ } 还可针对不同的变数状态(没设定、空值、非空值)赋值:

${parameter-word}

${parameter:-word}

${parameter:=word}

${parameter:?word} 当parameter指示的参数没有被设值的时候,将会通过标准错误的方式显示word中的语句。

${parameter:+word}

${!prefix*}

${#parameter}

${#var} 可计算出变量值的长度:

${#file} 可得到 27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节

如果old变量为未设定或叫不存在,那么将new=content

# unset new old

# echo ${old-content}

content

# new=${old-content}

# echo new=$new,old=$old

new=content,old=

如果old变量为空字符串,那么将new=空

# unset old new

# old=""

# new=${old-content}

# echo new=$new,old=$old

new=,old=

#

如果old变量为非空字符串,那么new=$old

# unset old new

# old=old

# new=${old-content}

# echo new=$new,old=$old

new=old,old=old

#

总结及其他字符整理

变量设置方式 old没有设置 old为空字符串 old已设置为非空字符串

new=${old-content} new=content new= new=$old

new=${old:-content} new=content new=content new=$old

new=${old+content} new= new=content new=content

new=${old:+content} new= new= new=content

new=${old=content} old=content

new=content old不变

new= old不变

new=$old

new=${old:=}

old=content

new=content

old=content

new=content

old不变

new=$old

new=${old?content}

content输出至stderr new= var=$str

new=${old:?content}

content输出至stderr content输出至stderr var=$str
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值