书到用时方恨少,事非经过不知难。这篇文章主要讲述echo的使用和{}的替换结构相关的知识,希望能为你提供帮助。
@TOC
echo的使用和的替换结构
echo的使用技巧
- echo -n:表示不换行输出
- echo -e:输出转义字符,将转义后的内容输出到屏幕上
常用的转义字符如下:
- \\b:转义后相当于按退格键(backspace),但前提是"
\\b"
后面存在字符;"
\\b"
表示删除前一个字符,"
\\b\\b"
表示删除前两个字符。
- \\c:不换行输出,在"
\\c"
后面不存在字符的情况下,作用相当于echo -n;但是当"
\\c"
后面仍然存在字符时,"
\\c"
后面的字符将不会被输出。
- \\n:换行,被输出的字符从"
\\n"
处开始另起一行。
- \\f:换行,但是换行后的新行的开头位置连接着上一行对应位置的行尾
- \\v:与\\f相同
- \\t:转义后表示插入tab,即横向制表符;
- \\r:光标移至行首,但不换行,相当于使用" \\r" 以后的字符覆盖" \\r" 之前同等长度的字符; 但是当" \\r" 后面不存在任何字符时," \\r" 前面的字符不会被覆盖
echo -e "abcdefg\\rhi"//结果是hicdefg
\\\\
表示插入\\
本身;
- \\b:转义后相当于按退格键(backspace),但前提是"
\\b"
后面存在字符;"
\\b"
表示删除前一个字符,"
\\b\\b"
表示删除前两个字符。
-
i=`echo "11,22,33,44"`echo $i%,* 11,22,33 //从最后倒数到最短的匹配部分(用%指定",*")被删除echo $i%%,* 11 //从最后倒数到最长的匹配部分(用%%指定",*")都被删除echo $i#*, 22,33,44 //从开头到最短的匹配部分(用#指定"")后面的逗号的地方,被删除echo $i##*, 44 //从开头到最长的匹配部分(用#)后面的逗号的地方,被删除i=`echo "123456789"`echo $i:3 456789 //从变量i的下标为3的字符开始获取所有字符(下标从0开始)echo $i:3:3 456 //从变量i的下标为3的字符开始获取变量i的3个字符echo $i/3/c 12c456789 //字符串i的第一个匹配的3替换为ci=$(echo "123d56d89") echo $i/d/& 12c456789 //字符串i的所有匹配的d替换为& echo $#i 10 //获取i的长度
$var:-string
和$var:=string
若变量var为空,则用在命令行中用string来替换$var:-string,否则变量var不为空时,则用变量var的值来替换$var:-string;$var:=string的替换规则和$var:-string是一样的,所不同之处是$var:=string若var为空时,用string替换$var:=string的同时,把string赋给变量var: $var:=string很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。
$var:+string
替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的)
var:?string
【echo的使用和{}的替换结构】替换规则为:若变量var不为空,则用变量var的值来替换$var:?string;若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。
推荐阅读
- #yyds干货盘点#Windows Server之AD组策略介绍
- 如何在 Linux 中使用 apt 命令管理包
- #yyds干货盘点#Golang 切片(slice)扩容机制源码剖析
- 自动化集成(Jenkins管理工具详解)
- mount unknown filesystem type linux_raid_member#yyds干货盘点#
- 当我单击”编辑帖子”时,WordPress帖子内容消失
- WordPress插件”浮动链接”未显示正确的颜色
- WordPress插件文件未加载自定义主题
- WordPress页面模板选项未显示在仪表板中()