echo的用法以及循环语句知识点扩充

249 阅读2分钟

echo的用法

echo的选项

  • -n:表示不换行输出输出 image.png

  • -e:输出转义字符,将转义的内容输出到屏幕上
    常用的转义字符

转义字符作用
\b转义后相当于按退格键,但前提是"\b"后面存在字符;"\b"表示删除前一个字符,“\b\b”表示删除前两个字符
\c不换行输出,在"\c"后面不存在字符的情况下,作用相当于echo -n;一但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出
\n换行,被输出的字符从"\n"处开始另起一行
\f换行,但是换行后的新行的开头位置连接着上一行的行尾
\v与\f相同
\t转以后表示插入tab,即横向制表符
\r光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖
\\表示插入" \ "本身
  • 退格\b image.png

  • 不换行输出\c image.png

  • 换行输出\n、\f、\v image.png

  • 制表符隔开\t image.png

  • 覆盖字符\r image.png

  • \的两个作用

    • 一个是可以配一些普通字符实现特殊效果
    • 另一个是可以把一些特殊符号转换成普通字符

echo截取字符输出

echo ${变量:该位下标:截取长度}

image.png

echo ${i%,*} #从字段最后开始删,删到以,分隔的最短部分位置(其中,可替换为其他字符)
echo ${i%%,*} #从字段最后开始删,删到以,分隔的最长部分位置
echo ${i#*,} #从字段最前面开始删,删到以,分隔的最短部分位置
echo ${i##*,} #从字段最前面开始删,删到以,分隔的最长部分位置

image.png image.png

其中,可替换为其他字符 image.png

echo获取字符串长度

echo ${#变量名}

image.png

实操一:自动生成八位随机密码

image.png image.png

IFS分隔符

linux中IFS是分隔符的意思,set | grep IFS可查看 image.png

更改局部配置的IFS

  1. 空格默认是分隔符 image.png image.png

  2. 在当前脚本指定换行符即可 image.png image.png

  • 也可以指定其他的分隔符 image.png image.png
保留原本的IFS

image.png image.png

while加read按行读取文件

while read line  #line为变量名
do
...
done < file

for循环读取文件内容 image.png

while循环读取文件内容

  • 方式一: image.png

  • 方式二:结合管道符 | image.png

实操二:分割文件

  • 将一个文件每50行分隔到一个新的文件中 image.png image.png

md5sum

用来计算和校验文件报文摘要的工具程序。
可以把文件转换成一个md5的校验和。 image.png