https://www.shellcheck.net/
只要满足条件,就一直循环
while 条件do 执行语句done#!/bin/bash#Author:zhongxina=1while [ ${a} -lt 5 ]do echo ${a} a=$((${a}+1))donecase 变量名 in 值1) 指令1 值2) 指令2 值3) 指令3 *) # 条件都不满足 指令4esac#!/bin/bash#Author:zhongxincase "$2" in +) echo "$1 + $3 = $(($1+$3))" ;; -) echo "$1 - $3 = $(($1-$3))" ;; \*) echo "$1 * $3 = $(($1*$3))" ;; /) echo "$1 / $3 = $(($1/$3))" ;; *) echo "$2 不是合法的运算符" ;;esacgrep[option][pattern][file1,file2]some command|grep[option][pattern]常用选项
-i忽略大小写
-c只输出匹配行的数量
-n显示行号
-r递归搜索
-E支持拓展正则表达式
-w匹配整个单词
-l只列出匹配的文件名
-F不支持正则,按字符串字面意思进行匹配
最基础用法
$ grep mail passwd大小写不敏感
$ grep New passwd$ grep New passwd -i匹配有多少行符合要求
$ grep New passwd -i -c1显示匹配的内容的行号
$ grep New passwd -i -n查找路径下的内容
$ grep -r "bash" ./只输出文件名
$ grep -rl "bash" ./正则匹配
$ grep "s{2}" passwd -E匹配整个单词
$ grep "oo" passwd -w$ grep "root" passwd -w/dev/null相当于linux中的回收站
$ grep "$USER" passwd > /dev/null && echo "$USER是存在的"|| echo "$USER是不存在的"查看是否运行了docker
-v:排除
# 查看ps中包含docker的内容$ ps -aux | grep dockerroot 24521 0.0 0.0 14224 1088 pts/0 S+ 23:21 0:00 grep --color=auto docker# 排除grep$ ps -aux | grep docker | grep -v grep# 查看符合的个数$ ps -aux | grep docker | grep -v grep | wc -l0sed[option]"pattern command"filesome command|sed[option]"pattern command"常用选项 [option]
-n只打印模式匹配的行
-f加载存放动作的文件
-r支持拓展正则
-i直接修改文件
匹配模式 pattern
5 只处理第五行
5,10只处理第五行到第十行
/pattern1/只处理能匹配到pattern1的行
/pattern1/,/pattern2/只处理从匹配到pattern1的行到匹配pattern2的行
command命令
查询 p
新增
a在匹配行的后面新增i在匹配行前新增r外部文件读入,行后新增w匹配行写入外部文件删除 d
修改
s/old/new,只修改匹配行中第一个olds/old/new/g修改匹配行中所有的olds/old/new/ig忽略大小写p相当于print
匹配的行打印两次
原始行+匹配的行
$ sed "p" passwd只打印匹配的行
$ sed -n "p" passwd匹配 mail的那行
$ sed "/mail/ p" passwd -n匹配以s开头的内容
$ sed -n "/^s/ p" passwd匹配mail开头的行到s开头的行
$ sed -n "/^mail/,/^s/ p" passwd在3,4,5行前面添加内容
$ sed '3,5 i Add content before the current line' passwd正式写入需要加 -i
$ sed -i '3,5 i Add content before the current line' passwd插入文件的内容
$ echo "testfile" >> a.txt$ sed -i '/man/,/mail/ r a.txt' passwd匹配内容写入文件
$ sed -i '/man/,/mail/ w b.txt' passwd删除内容
$ sed -i '/test/ d' passwd修改
$ sed '3,6 s/nologin/666/' passwd |head