linux循环检测文件,shell 循环 函数 数组 if 检测文件 判断数字大小

1.while 的格式

x=1

while ((x<=10)) ;do

if [ $x == "2" -o $x == "4" ];then

#条件x=2或者x=4执行下面语句

x=$[$x+1]

continue

#跳过本次循环

fi

echo "$x"

if [ $x == "8" ];then

break

#终止循环

fi

x=$[$x+1]

done

#最后输出结果为135678

2.for 循环

for i in `seq 10` ;do

echo "$i"

done

#输出为1-10个数,for 循环不是靠判断来循环的是靠列表循环的,seq 10 这个函数能列出1-10的数值,这些数值就是for循环的列表

for i in `ls` ;do

echo "$i"

done

#这个程序最后输出为该文件夹的所有目录及文件夹

3数组

sz=(00 11 22 33 44 55)

echo "${sz[*]}"

#输出所有数值,"@"和"*"效果一样

echo "${#sz[*]}"

#输出数值个数

echo "${sz[1]}"

#显示指标1的数值,注意默认指标从0开始计算

数组的赋值和调用

x=10

sz[$x]=233

echo "${sz[$x]}"

#变量的使用,显示第10指标个数值

declare -A sz

#定义关联数组,使用非数字格式的必须预先定义下

sz[yi]="111"

sz[er]="222"

echo "${sz[*]}"

echo "${sz[er]}"

显示结果 111 222

222

4.函数调用

hansu(){

#定义函数

echo "第$1次,函数显示"

}

hansu 1

#调用函数并传递参数,函数内部用$1 $2使用变量,和shell用法一样

hansu 2

hansu 3

最后显示效果;

第1次,函数显示

第2次,函数显示

第3次,函数显示

5.if的使用

if [ "a" == "a" ];then

echo "条件满足"

else

echo "条件不满足"

fi

#正常使用,满足条件执行第一个语句

if [ !"a" == "a" ];then

echo "条件满足"

else

echo "条件不满足"

fi

#加个"!"号,取反值,满足条件,就变成了不满足了

检测输入的字符类型小脚本

read input

case "$input" in

[a-z]|[A-Z])

echo "输入的是字母"

;;

[1-9])

echo "输入是数字"

;;

*)

echo "是其他字符"

;;

esac

检测文件

if [ -e /root/123.txt ];then

echo "文件存在"

else

echo "文件不存在"

fi

-e 判断对象是否存在

-d 判断对象是否存在,并且为目录

-f 判断对象是否存在,并且为常规文件

-L 判断对象是否存在,并且为符号链接

-h 判断对象是否存在,并且为软链接

-s 判断对象是否存在,并且长度不为0

-r 判断对象是否存在,并且可读

-w 判断对象是否存在,并且可写

-x 判断对象是否存在,并且可执行

-O 判断对象是否存在,并且属于当前用户

-G 判断对象是否存在,并且属于当前用户组

-nt 判断file1是否比file2新  [ "/data/file1" -nt "/data/file2" ]

-ot 判断file1是否比file2旧  [ "/data/file1" -ot "/data/file2" ]

字符运算

=: 检测两个字符是否相等,相等返回真

!= 检测两个字符是否不等,不等返回真

-z 检测字符串长度是否为0,为0返回真,全是空格返回真

$ 检测字符是否为空,有值时时候返回真,全是空格返回假

数值比较

x=10

y=5

if [ $x -gt $y ];then

#表达式还能这样写 if (( $x > $y ));then 效果也是一样的,注意建议用上面那种,括号在字符计算不会报错,写程序时可能会出现BUG

echo "真"

else

echo "假"

fi

#结果返回真

-gt是左边大于右边,返回真 同 >

-lt是小于 同 <

-eq是等于 同 =

-ne是不等于 同!=

-ge是大于等于 同>=

-le是小于等于 同<=

## 变量计算

xhcs=$((dnszs-jc))

xhcs=`expr $dnszs - $jc`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值