shell脚本编程基础知识点

整数比较:

-eq:测试两个整数是否相等;相等为真,不等为假
-ne:测试两个整数是否不等;不等为真,相等为假
-gt:测试一个数是否大于另一个数;大于为真,否则为假
-lt:测试一个数是否小于另一个数;小于为真,否则为假
-ge:大于或等于
-le:小于或等于

文件测试判断条件

-e FILE:测试文件是否存在
-f FILE:测试文件是否为普通文件
-d FILE:测试指定路径是否为目录
-r FILE:测试当前用户对指定文件是否有读权限
-w FILE:测试当前用户对指定文件是否有写权限
-x FILE:测试当前用户对指定文件是否有执行权限

特殊变量

$?:上一个命令的执行状态返回值
$#:参数的个数
$*:参数列表;$*会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数
$@:参数列表;$@会将各个参数分开,以"$1" "$2"…"n"的形式输出所有参数
$0:脚本本身名字

字符串测试

=~:正则表达式判断;[[ "$i" =~ ^[0-9]+$ ]] && echo 1;正则表达式和通配符需要使用在"[[ ]]"中
==(=):测试两边字符串是否相等,相等为真,不等为假;==(=)两端要有空格,否则系统会认为是变量赋值
!=:测试两边字符串是否不等,不等为真,相等为假
>:测试大于
<:测试小于
-n string:测试指定字符串是否为不空,不空则真,空则假     [ -n "$X" ]
-z string:测试指定字符串是否为空,空则真,不空则假

组合条件测试

-a:与关系
-o:或关系
!:非关系
非(A 且 B) = (非 A) 或 (非 B)
非(A 或 B) = (非 A) 且 (非 B)
原文地址:https://www.cnblogs.com/dongzhanyi123/p/12027926.html