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 为空则为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=(cat test.sh)
do
echo "--------"
echo IFS
网友评论