字符串切片 ${var:offset:number}
例如: name="Obama"|echo ${name:0:2}
或者echo ${name:1}
取最右侧的字符串 ${name: -3} 必须在:后面加一个空格
基于模型取字串
${var#*word} 其中word可以使任意字符;功能:自左而又,
查找var变量所存储的字符串中,第一次出现word,删除字符串开头至
第一次出现word字符之间的所有字符。
例如
name="123"|echo ${name#*2} 这样就会显示3,删除一次2
name="122323233"|echo ${name##*2} 表示删除最后一次出现2之前的所有字符
#表示左-->删除 ##*删最后一次以及之前 #*只删一次
%表示右-->删除 %%*删最后一次以及之前 %*只删一次
例如
url=http://www.123.com:8080
${url##*:} 取端口 8080
${url%%*:} 取写协议http
查找替换
${var/pattern/substi} 查找var所表示中第一次被p..匹配到的替换为s..
${var//pattern/substi} 查找var所表示中所有被p..匹配到的替换为s..
${var/#pattern/substi} 只替换行首为p..的
${var/%pattern/substi} 只替换行尾为p..的
查找删除
${var/pattern} 第一次并且删除
${var//pattern} 所有删除
${var/#pattern} 删除行首出现一次
${var/%pattern} 删除行尾出现一次
字符大小写替换
${var^^} 所有小写-->大写
${var,,} 所有大写-->小写
变量赋值
${var:-value} 如果var为空或未设置,返回value;否则返回var
${var:=value} 如果var为空或未设置,返回value,
并且将value赋值var;否则返回var
${var:+value} 如果var不空,返回value
${var:?error_info} 如果var为空或未设置,返回error_info;否则返回var值
为脚本程序使用配置文件
(1)定义文本文件,每行定义“name=value”
(2)在脚本中(source或者.)此文件即可
临时文件创建命令
mktemp
XXX至少出现3次
-d 创建临时目录
mktemp /tmp/test.XXX
就会用到 字母数字等62个变化随机填充XXX
mktemp --tmpdir=/path a.XXX
指明目录的情况下创建临时文件
引用 tmpfile=$(mktemp /tmp/test.XXX)
install命令
install -m 700 -d testdir 创建一个权限为700的目录
install file1 [file2..] 目录
install -t 目录 file...
-d 创建空目录
选项
-m 制定权限
-o 指定属主
-g 指明属组
本文详细介绍Shell脚本中字符串切片、模式匹配、大小写转换及文件管理命令的使用技巧,包括mktemp和install的高级应用。
1626

被折叠的 条评论
为什么被折叠?



