Shell语法——参数变量,测试与比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell语法——参数变量,测试与比较相关的知识,希望对你有一定的参考价值。
特殊变量
变量 |
说明 |
$0 |
获取当前执行的 Shell 脚本的文件名,如果执行脚本包含了路径,则包含脚本路径 |
$n |
获取当前执行的 Shell 脚本的第 n 个参数值,即 n=1..9,n 为 0 时,同上 |
$# |
获取当前执行的 Shell 脚本后面接的参数的总个数 |
$* |
获取当前 Shell 脚本所有传参的参数,加上双引号,"$*" 表示将所有的参数视为单个字符串,相当于 "$1 $2 $3" |
[email protected] |
获取当前 Shell 脚本所有传参的参数,不加双引号和 $* 相同。加上双引号,"[email protected]" 表示将所有的参数视为不同的独立字符串,相当于 "$1" "$2" "$3" |
$? |
获取上一个指令的执行状态的返回值(0 为成功,非 0 则失败) |
文件测试表达式
常用文件测试操作符 |
说明 |
-d 文件 |
文件存在且为目录则为真,即测试表达式成立 |
-f 文件 |
文件存在且为普通文件则为真,即测试表达式成立 |
-e 文件 |
文件存在则则为真,即测试表达式成立。不区分文件或目录 |
-r 文件 |
文件存在且可读则为真,即测试表达式成立 |
-s 文件 |
文件存在且大小不为 0 则为真,即测试表达式成立 |
-w 文件 |
文件存在且可写则为真,即测试表达式成立 |
-x 文件 |
文件存在且可执行则为真,即测试表达式成立 |
-L 文件 |
文件存在且为链接则为真,即测试表达式成立 |
f1 -nt f2 |
文件 f1 比文件 f2 新则为真,即测试表达式成立。根据文件的修改时间来计算 |
f1 -ot f2 |
文件 f1 比文件 f2 旧则为真,即测试表达式成立。根据文件的修改时间来计算 |
字符串测试表达式
常用字符串测试操作符 |
说明 |
-n "字符串" |
若字符串的长度不为 0 ,则为真,即测试表达式成立,n 可以理解为 no zero |
-z "字符串" |
若字符串的长度为 0 ,则为真,即测试表达式成立,z 可以理解为 no zero |
"串1" = "串2" |
若字符串 1 等于字符串 2,则为真,即测试表达式成立,可使用 "=="代替 "=" |
"串1" != "串2" |
若字符串 1 不等于字符串 2,则为真,即测试表达式成立,但不能使用 "!=="代替 "!=" |
整数二元比较操作符
在 [] 以及 test 中使用的比较符号 |
在 (()) 和 [[]] 中使用的比较符号 |
说明 |
-eq |
== 或 = |
相等 |
-ne |
!= |
不相等 |
-gt |
> |
大于 |
-ge |
>= |
大于相等 |
-lt |
< |
小于 |
-le |
<= |
小于相等 |
逻辑操作符
在 [] 以及 test 中使用的比较符号 |
在 (()) 和 [[]] 中使用的比较符号 |
说明 |
-a |
&& |
and,与,两端都为真,则结果为真 |
-o |
双竖线 |
or,或,两端有一个为真,则结果为真 |
! |
! |
not,非,两端相反,则结果为真 |
以上是关于Shell语法——参数变量,测试与比较的主要内容,如果未能解决你的问题,请参考以下文章
shell脚本的条件测试与比较
Shell脚本的条件测试与比较
Linux bash基础特性二
shell脚本的条件测试与比较
shell脚本的条件测试与比较
linux shell bash 内置变量参考