判断表达式以及逻辑

2019-08-05  本文已影响0人  zxhChex

text -e filename 判断是否存在
-f 是否存在并为普通文件
-d 是否存在并为目录
-s 是否存在并且为非空白文件
echo $? 判断上一条命令 0为正确 其他为错误

1 -nt 2 1是否比2新 (newer than)
1 -ot 2 1是否比2旧 (older than)
1 -ef 2 是否为同一文件,即inode是否相同

关于整数的判定(两个整数值)
n1 -eq n2 相等
n1 -ne n2 不相等
n1 -gt n2 1大于2
n1 -lt n2 1小于2
n1 -ge n2 1大于等于2
n1 -le n2 1小于等于2

${#s} 显示这个参数有多少字符
&&是和 || 是或

test -z s 判断s是否为空字符串 空则为ture 要么没定义,要么为空值 test !-zs 为空则为false

[ ] 相当于test
[ " " == " " ] 相等则ture test 'a' == 'a'
[ " " != " " ] 不相等则ture

多条件判定
-a 和
-o 或
! 相反状态

[[ 'hello' =~ 'h' ]] 正则是否匹配 ture
[[ 'he' =~ 'hello' ]] false

if[ ]; then
echo" "
elif[ ];then
echo" "
else
echo" "
fi

case $变量名称 in <==关键字为 case ,还有变量前有钱字号
"第一个变量内容") <==每个变量内容建议用双引号括起来,关键字则为小括号 )
程序段
;; <==每个类别结尾使用两个连续的分号来处理!
"第二个变量内容")
程序段
;;
*) <==最后一个变量内容都会用 * 来代表所有其他值
不包含第一个变量内容与第二个变量内容的其他程序运行段
exit 1
;;
esac <==反过来写,结束当前语句结构!

while [ condition ] ==>中括号内的状态就是判断式
do ==> do 是循环的开始!
代码段
代码段
done ==> done 是循环的结束

break(跳出当前循环) 和 continue(结束当前循环执行下一次循环)

while read line
do
echo $line
done < ./a.txt

for var in con1 con2 con3 ...
do
程序段
done
in {1..18}
in $(seq 1 8)

IFS
for i in {1..5}
do
echo $i
done

IFS='\n' for line in(cat test.sh)
do
echo "--------"
echo line done export IFS=IFS

上一篇 下一篇

猜你喜欢

热点阅读