标签:RKE data 要求 通配 int print default eth 转义
字符串可以由单引号‘ ‘
包围,也可以由双引号" "
包围,也可以不用引号,它们之间是有区别的:
1) 由单引号‘ ‘
包围的字符串:
2) 由双引号" "
包围的字符串:
3) 不被引号包围的字符串
" "
包围的字符串一样。获取字符串长度可以用${#string_name}
原理 |
原始字符串 var=http://www.aaa.com/123.html | 结果 |
---|---|---|
左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示,起始数字是1 ${string: start :length} start :length指定起始位置和长度,长度省略的话表示直到字符串的末尾 |
echo ${var:0:5} |
http: |
echo ${var:7} |
www.aaa.com/123.html | |
echo ${var:0-7:3} |
23. | |
echo ${var:0-7} |
23.html |
原理 |
原始字符串 var=http://www.aaa.com/123.html | 结果 |
---|---|---|
#、## 表示从左边开始删除。 一个 # 表示从左边删除到第一个指定的字符; 两个 # 表示从左边删除到最后一个指定的字符。 |
echo ${var#*/} | /www.aaa.com/123.html |
echo ${var##*/} | 123.html | |
%、%% 表示从右边开始删除。 一个 % 表示从右边删除到第一个指定的字符; 两个 % 表示从左边删除到最后一个指定的字符。 删除包括了指定的字符本身。 |
echo ${var%/*} | http://www.aaa.com |
echo ${var%%/*} | http: | |
如果不需要忽略指定字符左边/右边的字符,那么也可以不写 *表示零个或多个任意字符,?表示仅与一个任意字符匹配,[…]表示匹配中括号里面的字符,[!..]表示不匹配中括号里面的字符。 |
echo ${var#http:/} echo ${var%/123.html} |
/www.aaa.com/123.html http://www.aaa.com |
格式 | 说明 | 举栗 |
---|---|---|
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 |
var=/home/wwwroot/ echo $var #result is /home/wwwroot/ echo ${var:5} #result is /wwwroot/ echo ${var: -5} #result is root/ echo ${var:(-5)} #result is root/ echo ${var:0-5} #result is root/ echo ${var:1-5} #result is oot/ |
${string: 0-start} |
从 string 字符串的右边第 start 个字符开始截取,直到最后。 从右边开始提取字串,但必须使用在冒号后面加空格或一个数字或整个num加上括号,如${var: −2}、${var:0-2}或${var:(-2)}。 |
|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 |
var="http://www.runoob.com/linux/linux-shell-variable.html" s1=${var%%t*} 结果:h s2=${var%t*} 结果:http://www.runoob.com/linux/linux-shell-variable.h s3=${var%%.*} 结果:http://www s4=${var#*/} 结果:/www.runoob.com/linux/linux-shell-variable.html s5=${var##*/} 结果:linux-shell-variable.html |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 | |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 | |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 | |
${string%*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 | |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 |
ls -al | cut -d "." -f2 获取后缀名
echo $test|cut -c1-8
脚本 | 结果 | 注意点 | |
---|---|---|---|
拼接字符 |
$value1=home $value2=${value1}"=" echo $value2 |
home= |
1.在 Shell 中不需要使用任何连接符,将两个字符串并排放在一起就能实现拼接 2.变量名要加{},避免变量名与其他字符向混淆 |
拼接字符串 |
var0=test var1=43 echo ${var0}${var1} |
test43 |
语法:${变量/查找/替换值} 一个‘/‘表示替换第一个,‘//‘表示替换所有,当查找中出现了特殊字符"/",需要转移成"\/"。
test=‘c:/windows/boot.ini‘
|
脚本
|
结果
|
---|---|---|
替换第一个/ |
echo ${test/\//\\} |
c:\windows/boot.ini |
替换所有/ |
echo ${test//\//\\} |
c:\windows\boot.ini
|
标签:RKE data 要求 通配 int print default eth 转义
原文地址:https://www.cnblogs.com/mianbaoshu/p/12069425.html