正则表达式
* 代表零个或多个字符:
? 代表单个字符
shell脚本第一句: #!/bin/bash 指定该shell脚本是用哪个shell执行的
`` 反引号里面的命令先执行
\ 反义字符
> 输出重定向
>> 输出重定向
< 将文本中的命令输入到命令行
<< 内联输入重定向(允许在命令行而不是在文件指定输入重定向数据,而且必须指定一个文本标记来划分输入数据的开头和结尾)
| 管道符号
?(变量) 记录程序执行状态的返回值
echo xxxx 默认不需要用引号将要显示的文本圈起来
但是如果在字符串中用到了引号,则需要用另一个引号将文本圈起来
expr math-state 执行数学表达式的计算
$[math-state] 执行数学表达式的计算并进行赋值(只能进行整型数据的计算)
bc bash内置的计算器(先执行再将结果返回,或者使用内联输入重定向来执行多条语句)
结构化命令:
if-then语句:
if command
then
commands
fi
then部分可以写入多条命令,bash shell会将这部分的命令当作一个块
bash shell的if语句会运行if行定义的那个命令,如果该命令的状态返回值为0(该命令执行成功),位于then部分的命令就会被执行,如果命令的退出码的状态是其他的什么值,那么then部分的命令就不会被执行
if-then-else语句:
if command
then
commands
else
commands
fi
当if语句中的返回退出状态码为0时,执行then语句中的命令,当返回非0状态码时,执行else中的命令
嵌套if语句
if command1
then
commands
elseif command2
then
more commands
fi
test命令:
test condition condition是test命令要测试的一系列参数和值
可判断的三类条件:(具体查看man手册)
1.数值比较:
2.字符串比较
3.文件比较
注意:>需要进行转义处理
sort与test命令处理大小写方法正好哦呵湘反,test中大写字母会被当成小写字母处理,但当你将同样的字符放进文件中用sort命令排序时,小写字母会出现,原因:test基于标准ASCII顺序,sort使用系统的本地化语言设置中第定义的排序顺序