测试符 | 描述 | 示例 |
---|---|---|
-e | 文件或目录存在为真 | [ -e path ] path 存在为 true |
-f | 文件存在为真 | [ -f file_path ] 文件存在为 true |
-d | 目录存在为真 | [ -d dir_path ] 目录存在为 true |
-r | 有读权限为真 | [ -r file_path ] file_path 有读权限为 true |
-w | 有写权限为真 | [ -w file_path ] file_path 有写权限为 true |
-x | 有执行权限为真 | [ -x file_path ] file_path 有执行权限为 true |
-s | 文件存在并且大小大于 0 为真 | [ -s file_path ] file_path 存在并且大小大于 0 为 true |
#!/bin/bash
F="/tmp"
[ -f $F ] && echo "${F}是文件" || echo "${F}不是文件"
[ -d $F ] && echo "${F}是目录"|| echo "${F}不是目录"
[ -e $F ] && echo "${F}存在" || echo "${F}不存在"
[ -r $F ] && echo "${F}可读" || echo "${F}不可读"
[ -w $F ] && echo "${F}可写" || echo "${F}不可写"
[ -x $F ] && echo "${F}可执行" || echo "${F}不可执行"
[ -s $F ] && echo "${F}文件存在大小不为0" || echo "${F}不存在或者大小为0"
运算符 | 描述 | 示例 | |
---|---|---|---|
! | 非关系,条件结果取反 | [ ! 1 -eq 2 ]为true | |
-a | 和关系,在[]表达式中使用 | [ 1 -eq 1 -a 2 -eq 2 ]为true | |
-o | 或关系,在[]表达式中使用 | [ 1 -eq 1 -o 2 -eq 1 ]为true |
#!/bin/bash
A=2
B=2
C=3
D=3
if [ $A -eq $B -a $C -eq $D ];then
echo "yes"
else
echo "no"
fi
C=4
if [ $A -eq $B -o $C -eq $D ];then
echo "yes"
else
echo "no"
fi
判断符 | 描述 | 示例 |
---|---|---|
&& | 逻辑和,在[[]]和(())表达式中 或判断表达式是否为真时使用 | [[ 1 -eq 1 && 2 -eq 2 ]]为 true (( 1 == 1 && 2 == 2 ))为true |
[ 1 -eq 1 ] && echo yes 如果&&前 面表达式为 true 则执行后面的 | ||
|| | 逻辑或,在[[]]和(())表达式中 或判断表达式是否为真时使用 | [[ 1 -eq 1 || 2 -eq 1 ]]为 true (( 1 == 1 || 2 == 2 ))为true |
[ 1 -eq 2 ] || echo yes 如果||前 面表达式为 false 则执行后面的 |
#!/bin/bash
A=2
B=2
C=3
D=3
if [[ $A == $B && $C == $D ]];then
echo "yes"
else
echo "no"
fi
C=4
if [[ $A == $B || $C == $D ]];then
echo "yes"
else
echo "no"
fi
[
中-a
等价于双括号[[
中的&&
,逻辑与[
中-o
等价于双括号[[
中的||
,逻辑或[
中-eq
等价于双括号[[
中的==
,等于号原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。