Shell 字符
Bash 的字符、变量操作。
[TOC]
转义字符
字符
意义
\\
显示反斜杠
\a
警报
\b
退格
\f
换页
\n
换行
\r
回车
\t
水平制表符
\v
垂直制表符
echo -e
: 对转义字符进行替换 ,显示。
字符长度
a="abc"
echo ${#a}
操作字符
顺序提取
a="0123456789"
echo ${a:3}
# 3456789
# ${变量名:起始下标}
# 下标从 0 开始
尾部提取
echo ${a:0-3}
# 或(注意空格)
echo ${a: -3}
# 789
指定长度
长度为正数
echo ${a:3:3}
# 345
# ${变量名:起始下标:长度}
长度为负数
如果 ${a:3:-3}
,长度为负数,则表示从 [3,-3) 的所有字符
# 0 1 2 3 4 5 6 7 8 9
# 0 1 2 3 4 5 6 7 8 9 正数
# -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 倒序
echo ${a:3:-3}
# 3456
掐头(保留尾巴)
a="abc.tar.gz"
echo ${a#*.}
# ${变量名#*分割符}
# tar.gz
echo ${a##*.}
# 最大匹配:两个 # 号
# ${变量名##*分割符}
# gz
去尾(保留头部)
echo ${a%.*}
# ${变量名%分割符*}
# abc.tar
echo ${a%%.*}
# 最大匹配:两个 % 号
# ${变量名%%分割符*}
# abc
字符替换
a="abcABCabc"
# 替换一次
echo ${a/a/A}
# AbcABCabc
# 全部替换
echo ${a//a/A}
# AbcABCAbc
字符删除
a="abcABCabc"
# 删除一次
${变量名/删除的字符}
echo ${a/b}
# acABCabc
# 全部删除
echo ${a//b}
# acABCac
大小写转换
a="abcABCabc"
# 全部转为小写
echo ${a,,}
# abcabcabc
# 全部转为大写
echo ${a^^}
# ABCABCABC
变量替换
形式
说明
${var}
变量本来的值
${var:-word}
如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word}
如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message}
如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。 若此替换出现在 Shell 脚本中,那么脚本将停止运行。
${var:+word}
如果变量 var 被定义,那么返回 word,但不改变 var 的值。
Last updated
Was this helpful?