shell 表达式
-d file 是否存在而且为目录
-f file 文件是否存在,且为普通文件
-w file 文件是否存在且可写
-s file 文件是否存在且非空
-n string 字符串长度非0
string1=string2 字符串相等
-eq 等于
-gt 大于
-lt 小于
-e file 文件是否存在
-r file 文件是否存在且可读
-x file 文件是否存在且可执行
-h file 文件是否为链接文件
-z string 字符串长度为0
string1!=string2 字符串不等
-ge 大于或等于
-le 小于或等于
-ne 不等于
单引号
echo ‘$HOME‘
$HOME
echo "$HOME"
/root
echo "\$HOME"
转义
echo "abc `date +%D`"
abc 12/07/16
echo "abc $(date +%D)"
abc 12/07/16
正则表达式
. 匹配任意单个字符
* 匹配前一个字符出现0次或多次
.* 匹配任意多个任意字符串
[] 匹配集合中任意单个字符
[x-y] 匹配连续的字串范围
^ 匹配字串开头
$ 匹配字串结尾
[^] 匹配否定,对括号中的集合取反
\ 匹配转义后的字串
\{n,m\} 匹配前一个字符重复n到m次
\{n,\} 匹配前一个字符至少n次
\{n\} 匹配前一个字符串重复n次
\(\) 将\(与\)之间的内容存储在"保留空间",最大存储9个
\n 同过\1至\9调用保留空间中的内容
{n,m} 等同于\{n,m\}
+ 匹配前一个字符出现一次或多次
? 匹配前一个字符出现一次或0次
| 逻辑或,匹配前或后字串
() 匹配正则集合
eg:
grep :..0: passwd
grep 00* passwd
grep o[oa]t passwd
grep [0-9] passwd
grep ^root passwd
grep bash$ passwd
grep sbin/[^t] passwd
grep ‘0\{1,2\}‘ passwd
grep "\(root\)\(:\).*\2\1" passwd
grep ^$ passwd
grep -v ^$ passwd